我有几个看起来像这样的目录:
dir1/
|_foo.txt
|_bar.txt
dir2/
|_qux.txt
|_bar.txt
对于每个目录,我想将其中的文件压缩为* .gz格式 然后删除未压缩的。所以最后我们希望得到这样的东西:
dir1/
|_foo.gz
|_bar.gz
dir2/
|_qux.gz
|_bar.gz
有简单的Unix方法吗?
答案 0 :(得分:39)
gzip */*.txt
但每个文件的扩展名为.txt.gz,因为gzip使用它来了解原始文件名。
答案 1 :(得分:10)
即使您有子目录,以下内容也会有效。例如。 DIR1 / DIR2 /.../ foo.txt的
find . -type f -name "*.txt" -exec gzip {} \;
答案 2 :(得分:8)
gzip -r dir1 dir2