Linux下zip压缩文件时怎样排除指定的文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下zip压缩文件时怎样排除指定的文件?相关的知识,希望对你有一定的参考价值。
zip -r xxx.zip 这个是压缩该路径下所有子文件夹和文件。
我要排除该路径下的 aaa bbb 两个文件夹,请问具体应该怎么写?我搜索了一下,有人说用 -x ,但是我没有成功,不知道哪里错了。
例如:
以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压缩文件时怎样排除指定的文件?的主要内容,如果未能解决你的问题,请参考以下文章