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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下zip压缩文件时怎样排除指定的文件?相关的知识,希望对你有一定的参考价值。

zip -r xxx.zip 这个是压缩该路径下所有子文件夹和文件。

我要排除该路径下的 aaa bbb 两个文件夹,请问具体应该怎么写?我搜索了一下,有人说用 -x ,但是我没有成功,不知道哪里错了。

在用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
参考技术A 确实是用参数 -x
aaa bbb 两个文件夹要写全路径。


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

解压zip的linux命令

linux下解压zip的命令是unzip,需要用命令yuminsatll-yunzip来安装。
zip的压缩包在windows和linux中都比较常用,它可以压缩目录和文件,压缩时录时,需要指定目录下的文件。zip后面先跟目标文件名,即压缩后得自定义压缩包名,然后跟要压缩的文件或目录。没有该命令的话可以用yuminstall-yzip来安装。
使用zip压缩时,文件本身不会消失。
参考技术A Linux unzip命令:解压zip文件
unzip命令用于查看和解压缩zip文件,可以列出、测试和提取zip存档中的压缩文件。
命令语法:
unzip [选项] 压缩包名
命令选项:
-d 目录名 将压缩文件解压到指定目录下
-n 解压时并不覆盖已经存在的文件
-o 解压时覆盖已经存在的文件,并且无需用户确认
-v 查看压缩文件的详细信息,包括压缩文件中包含的文件大小、文件名以及压缩比等,但并不做解压操作
-t 测试压缩文件有无损坏,但并不解压
-x 文件列表 解压文件,但不包含文件列表中指定的文件。

以上是关于Linux下zip压缩文件时怎样排除指定的文件?的主要内容,如果未能解决你的问题,请参考以下文章

linux zip压缩。压缩当前文件夹下所有文件,压缩为a.zip。命令行的方法是怎样。

zip

linux 下 zip unzip压缩与解压

每天一条Linux命令(10) zip (超详细)

linux tar 怎样将压缩到指定文件夹

linux解压带密码的zip的命令是啥