我正在寻找如何通过命令行(unix)重命名 7zip 存档中的文件的解决方案。
Unix 工具 p7zip 基于 7zip,应该支持相同的命令行选项,这些选项记录在其帮助文件中。
要从 CLI 重命名,您需要 9.30 或更高版本,要一次性重命名多个文件,您至少需要 15.05 版本(可能尚未移植):
http://www.7-zip.org/history.txt
重命名档案内文件的语法是
7za rn <archive_name> <src_file_1> <dest_file_1> [ <src_file_2> <dest_file_2> ... ]
它还允许移动文件,例如进入子目录:
7za rn archive.7z old.txt new/location/new.txt
如果您像我一样,尝试直接在存档中重命名文件,因为 7Zip 无法在提取时重命名文件,并且您现在发现 7Zip 的重命名功能也不能很好地工作,这就是 Bash 解决方案我最终使用了:
for i in *.rar; do
filename="${i%%.*}" // Get the filename without the .rar extension
7z e "$i" -so > "$filename.txt"
done
如果您只需要对一两个文件执行此操作,则根本不需要循环,只需执行以下操作即可:
7z e "myfile.rar" -so > "myfile.txt"
不幸的是,这两种解决方案都只适用于其中只包含一个文件的存档,但这很好地满足了我的需求,而且似乎这是在没有实际选项来启用这一基本编程功能的情况下可以完成的最佳解决方案.