7zip Linux 命令行 - 不包括目录

Ant*_*réz 5 linux backup bash command-line 7-zip

我想使用 7zip 为我的网站制作 .7z 存档;有一些目录包含大文件(几千兆字节),不值得备份,因为我已经有它们的备份。我可以指定仅备份特定文件或目录,但我计划制作一个脚本来为我执行此操作,并且不断更新脚本以包含新文件、文件类型和目录会有点烦人。我在文档中找不到任何有关排除目录的内容;只有文件。执行此操作的最简单方法是什么?

我之前使用的命令(在我要避免大文件之前)很简单

7z a backup.7z *
Run Code Online (Sandbox Code Playgroud)

在工作目录中完成。

Ark*_*zyk 8

directory是一种文件类型。man 7z不容易阅读,但它提到-x

\n
\n
-x[r[-|0]]]{@listfile|!wildcard}\n         \n\n    Exclude filenames\n
Run Code Online (Sandbox Code Playgroud)\n
\n

假设我们有一个以下目录树:

\n
$ tree\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dir\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 file3\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dir1\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 file4\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file1\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 file2\n\n2 directories, 4 files\n
Run Code Online (Sandbox Code Playgroud)\n

我们想忽略dirdir1

\n
$ 7z a -x'!dir' -x'!dir1' b.7z  *\n
Run Code Online (Sandbox Code Playgroud)\n

这样做之后:

\n
$ 7z l b.7z\n(...)\n   Date      Time    Attr         Size   Compressed  Name\n------------------- ----- ------------ ------------  ------------------------\n2018-04-03 22:25:24 ....A            0            0  file1\n2018-04-03 22:25:24 ....A            0            0  file2\n------------------- ----- ------------ ------------  ------------------------\n2018-04-03 22:25:24                  0            0  2 files\n
Run Code Online (Sandbox Code Playgroud)\n