我正在尝试慢慢地学习 bash,但发现如果没有适合我想要使用的东西的实际示例,很难掌握更多的技术方面。为此,我想知道如何使用 bash(和 7zip)来存档一些照片,以准备将它们存储在网上。
本质上,我认为这就像为每个目录制作 .7z 存档一样“简单”,为每个存档分配与相关目录相同的名称。所有目录的命名都没有空格,如果这很重要的话。
感谢所有的建议。
答案1
foo
将目录压缩到名为foo.7z
using的存档的方法7z
是使用命令a
(“add”):
7z a foo.7z foo
要对多个目录执行此操作,可以使用循环:
for dir in foo bar baz; do
7z a "$dir".7z "$dir"
done
(这对于包含空格的目录名是安全的,因为
$dir
被引号引起来,但对于以破折号开头的目录名则不然;这会导致7z
尝试将它们解释为选项。)
如果您打算归档的目录名称共享一个模式,那么您可以在 for 循环中使用该模式,而不是显式列出所有目录,例如for dir in [0-9][0-9][0-9][0-9][0-9][0-9]-*; ...
.
请注意,7z 文档警告不要在 Unix 上使用 7z 格式进行存档,因为它不保留所有权信息。这对你来说可能重要也可能不重要。