7zip 使用各自的名称压缩多个文件

7zip 使用各自的名称压缩多个文件

我有很多文件想要使用 7zip 实用程序存档/压缩。它们都位于同一个文件夹中。每个存档必须与要存档的文件具有相同的名称。

例如,如果文件是1.txt, 2.txt3.txt则存档应该是1.7z,2.7z等等。

我找到了一些批处理脚本,但我需要一个 bash 脚本。

我可以使用列出所有文件

for i in *.txt; do echo $i; done

但无法使其与 7zip 命令一起使用,即7z a 'archive.7z' 'file.txt'

答案1

for i in *.txt; do 7z a "${i%%.*}.7z" "$i"; done

这个命令似乎有效。如果您的文件名包含空格,请尝试将分隔符设置为换行符。我通过使用这个命令实现了它IFS=$'\n'

${i%%.*}这个东西是用来删除我的情况下的扩展.txt。如果您希望您的存档看起来像这样,.txt.7z那么只需使用$i.7z它就会起作用。

相关内容