Linux下zip压缩文件时怎样排除指定的文件?

2025-02-23 16:49:47
推荐回答(3个)
回答1:

在用tar命令打包的时候,增加参数 --exclude 就能达到目的。
例如:
以tomcat 为例,打包的时候要排除 tomcat/logs 目录,命令如下:
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs tomcat
如果要排除多个目录,增加 --exclude 即可,如下命令排除logs和libs两个目录及文件xiaoshan.txt:
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs --exclude=tomcat/xiaoshan.txt tomcat
这里要说一下注意事项:
linux在使用tab键的时候会对目录名称自动补全,这很方便,也比较常用。
如输入 tomcat/lo 的时候按tab键,命令行会自动生成 tomcat/logs/ ,对于目录,最后会多一个 “/”。这里大家要注意的时候,在使用tar 的--exclude 命令排除打包的时候,不能加“/”,否则还是会把logs目录以及其下的文件打包进去。
错误写法:
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs/ --exclude=tomcat/libs/ tomcat
正确写法:
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs tomcat

回答2:

确实是用参数 -x
aaa bbb 两个文件夹要写全路径。


zip -r test.zip test -x /test/aaa/* -x /test/bbb/*

回答3:

在对某个目录进行压缩的时候,有时候想排除掉某个目录,
例如:如果123目录下有3个子目录,aa、bb、cc。我现在想只对aa和bb目录打包压缩,命令如下:
tar -zcvf 123.tar.gz --exclude=cc 123
(在123目录的外面运行)使用exclude参数来过滤不需要的目录或文件,排除某个文件的操作和目录一样。