递归压缩文件夹并保存到给定子文件夹中(Linux)

22

在Linux zip中,是否可能递归压缩一个文件夹,但排除指定的子路径?

例如,压缩'base_folder'及其所有子文件夹,但排除'base_folder/sub_folder'。

是否可以实现?如果是,如何实现?

3个回答

35

zip -r base_folder.zip base_folder -x base_folder/sub_folder/\* base_folder/another_sub_folder/\*

(我已将您在评论中慷慨提供的改进信息纳入其中。)

更多信息请查看:man zip


2
压缩 -r 压缩文件.zip 基础文件夹 -x '基础文件夹/要跳过的第一个文件夹/' '基础文件夹/要跳过的第二个文件夹/' - john-jones

3

您可以使用tar命令,并使用--exclude选项来排除不需要备份的文件或目录,然后使用-z选项将输出的tar文件进行gzip压缩。


1

查找文件,排除文件夹,使用xargs将剩余的文件打包成tar或zip或其他格式:

find /in/your/dir | grep -v 'name_of_dir_to_be_excluded' | xargs tar jcvf nameOfArchive.tar.bz2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接