使用 7-Zip 命令行归档文件和目录,一些是递归的,一些是非递归的?
Archive files and dirs, some recursively, some non-recursively, using 7-Zip command line?
我想用 7-Zip 命令行归档一堆文件和目录,作为 shell 脚本执行(bash shell 在 Ubuntu 19.04 服务器)。
在我的主目录中,有两个子目录:foo
和 bar
。
foo
和 bar
目录都包含子目录,例如目录结构是这样的:
foo
foo/abc
foo/pqrs
foo/etc...
bar
bar/xyz
bar/temp
bar/etc...
我想创建一个 7z 存档:
foo
的所有内容,包括其子目录
bar
中的所有文件,但不在其子目录中
我可以单独做这个,但是有没有办法一次性完成这个,也许使用@filelist.txt结构?
perhaps using a @filelist.txt construction?
使用通配符对我来说似乎更容易。例如:
7z a -x'!bar/*/' my_archive.7z foo bar
我提出的第一个解决方案是:
find foo bar \
! \( -type d -path 'bar/*' -prune \) \
-type f \
-exec 7z a 'my_archive.7z' {} +
除了存档索引中没有目录条目外,这几乎是一样的。
我想用 7-Zip 命令行归档一堆文件和目录,作为 shell 脚本执行(bash shell 在 Ubuntu 19.04 服务器)。
在我的主目录中,有两个子目录:foo
和 bar
。
foo
和 bar
目录都包含子目录,例如目录结构是这样的:
foo
foo/abc
foo/pqrs
foo/etc...
bar
bar/xyz
bar/temp
bar/etc...
我想创建一个 7z 存档:
foo
的所有内容,包括其子目录bar
中的所有文件,但不在其子目录中
我可以单独做这个,但是有没有办法一次性完成这个,也许使用@filelist.txt结构?
perhaps using a @filelist.txt construction?
使用通配符对我来说似乎更容易。例如:
7z a -x'!bar/*/' my_archive.7z foo bar
我提出的第一个解决方案是:
find foo bar \
! \( -type d -path 'bar/*' -prune \) \
-type f \
-exec 7z a 'my_archive.7z' {} +
除了存档索引中没有目录条目外,这几乎是一样的。