![7zip 使用各自的名称压缩多个文件](https://linux22.com/image/209607/7zip%20%E4%BD%BF%E7%94%A8%E5%90%84%E8%87%AA%E7%9A%84%E5%90%8D%E7%A7%B0%E5%8E%8B%E7%BC%A9%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6.png)
我有很多文件想要使用 7zip 实用程序存档/压缩。它们都位于同一个文件夹中。每个存档必须与要存档的文件具有相同的名称。
例如,如果文件是1.txt
, 2.txt
,3.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
它就会起作用。