我有一个目录(dir
)(包含文件和子目录):
ls -1 dir
plot.pdf
subdir.1
subdir.2
obj.RDS
然后ls -1
或subdir.1
:
subdir.2
plot.pdf
PC.pdf
results.csv
de.pdf
de.csv
de.RDS
我想tar
和gzip
目录(在unix
中),我想要排除所有RDS
个文件(dir
以下的级别{ {1}}及其子目录中的那些。)
最简单的方法是什么?也许在一个班轮里
答案 0 :(得分:1)
类似的东西:
find dir -type f -not -name '*.RDS' -print0 |
tar --null -T- -czf TARGET.tgz
应该这样做。
首先,find
找到文件,然后tar
通过-T-
(= --files-from /dev/stdin
)接受列表。
-print0
上{p} find
与--null
结合使用tar保护免受奇怪的文件名。
-czf
==创建gZipped文件
您可以添加v
以获得详细输出。
要稍后检查内容,您可以执行以下操作:
tar tf TARGET.tgz
答案 1 :(得分:1)
tar --exclude=*.RDS -Jcf outputball.tar dir_to_compress
这将忽略任何目录或子目录中的* .RDS
使用
解压缩tar -xvf outputball.tar