从tar中删除文件gzipping unix中的目录

时间:2017-03-24 00:07:17

标签: unix gzip tar

我有一个目录(dir)(包含文件和子目录):

ls -1 dir
plot.pdf
subdir.1
subdir.2
obj.RDS

然后ls -1subdir.1

subdir.2
plot.pdf
PC.pdf
results.csv
de.pdf
de.csv
de.RDS

我想targzip目录(在unix中),我想要排除所有RDS个文件(dir以下的级别{ {1}}及其子目录中的那些。)

最简单的方法是什么?也许在一个班轮里

2 个答案:

答案 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