7z 目录中的所有文件,删除原始文件

7z 目录中的所有文件,删除原始文件

我有一些目录(Linux 机器)充满了高度可压缩的 *.foo 文件。

现在我只有一个脚本gzip *.foo,它将每个文件压缩到它自己的 .gz 文件中,并删除原始文件。7z 会将这些文件压缩为 gzip 大小的一半,所以我想切换到它。

我如何使用 7z 来启动这样的目录

file1.foo
file2.foo
file3.foo

最后得到

file1.foo.7z
file2.foo.7z
file3.foo.7z

或者类似的东西。我不想把所有文件都放在一个 .7z 存档中。

答案1

for i in *.foo; do 7za a $i.7z $i; if [ $? -eq 0 ]; then rm $i; fi; done

答案2

尝试一下:

find -type f -maxdepth 1 -name "*.foo" -print0 | xargs -0 -I % 7z a %.7z %

但压缩后仍会保留原始文件。

相关内容