![从命令行使用 7-Zip - 使用目录名命名 zip 文件](https://linux22.com/image/1328247/%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%BD%BF%E7%94%A8%207-Zip%20-%20%E4%BD%BF%E7%94%A8%E7%9B%AE%E5%BD%95%E5%90%8D%E5%91%BD%E5%90%8D%20zip%20%E6%96%87%E4%BB%B6.png)
我知道这应该很简单,但我不知道该怎么做。如能得到任何帮助我将不胜感激。
我想用目录名来命名 zip 文件。
假设我有一个目录“Zip1”,其中包含文件“Doc1.txt”和“Doc2.txt”
我了解压缩文件夹的所有知识,但命名除外。我找不到如何使用目录名称信息通过命令行命名文件的示例。
我怎样才能将此 zip 文件命名为“Zip1.7z”,而无需实际输入目录名称,而是让命令行从文件所在的目录中提取此信息?
有人可以帮忙吗?
答案1
我假设您位于一个所有子目录都应被压缩的目录中,并且 7-Zip 二进制文件位于您的 PATH 上。
然后您可以在 Windows 上使用以下命令(目录为%i
):
for /d %i in (*) do 7z ... %i.7z ...
在 Linux 上(目录为$i
):
for i in $(find -mindepth 1 -maxdepth 1 -type d) ; do 7zr ... $i.7z ... ; done
更短但不太强大:
for i in */ ; do 7zr ... ${i%/}.7z ... ; done
示例:压缩.txt
所有目录中以 开头的所有文件backup-
:
视窗:
for /d %i in (backup-*) do 7z ... %i.7z %i\*.txt
Linux:
for i in backup-*/ ; do 7zr ... ${i%/}.7z $i/*.txt ; done