Linux tar压缩命令 排除某个目录 && 排除某种格式后缀文件
Linux tar压缩命令 排除某个目录 && 排除某种格式后缀文件

需求
一般直接用tar命令打包很简单,直接使用tar -zcvf test.tar.gz test 即可。
在很多时候,我们要对某一个目录打包,而这个目录下有几十个子目录和子文件,我们需要在打包的时候排除其中1、2个目录或文件。
这时候我们在用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注意事项
排除文件夹不需要最后带斜杠,不然还是会把要排除的目录以及其下的文件打包进去
错误写法:
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs/ --exclude=tomcat/libs --exclude=tomcat/xiaoshan.txt tomcat正确写法:
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs tomcat排除某一个后缀的文件
tar -zcvf backup.tar.gz --exclude='*.log' --exclude='*.png' --exclude='*.jpg' --exclude='*.jpeg' /www/wwwroot/projectrsync (远程 -->本地)
rsync -ra --progress --exclude='*.log' --exclude='*.png' --exclude='*.jpg' --exclude='*.tar.gz' --exclude='*.zip' --exclude='*.jpeg' --exclude='*.gif' --exclude='*.json' root@129.226.126.194:/www/wwwroot/remote_project_dir /Users/sui/Documentsssh端口不是默认22端口:
rsync -ra --progress --exclude='*.log' --exclude='*.png' --exclude='*.jpg' --exclude='*.jpeg' --exclude='*.gif' --exclude='*.json' -e 'ssh -p 22000' root@129.226.126.194:/www/wwwroot/remote_project_dir /Users/sui/Documents文件压缩排除后缀文件
排除多个文件类型
tar -zcvf backup.tar.gz --exclude-from=tarexclude.txt /www/project-dirtarexclude.txt
*.htm
*.HTM
*.html
*.HTML
*.doc
*.DOC
*.docx
*.DOCX
*.sep
*.SEP
*.gd
*.GD
*.gw
*.GW
*.xls
*.xlsx
*.ppt
*.PPT
*.pptx
*.PPTX
*.pdf
*.PDF
*.tif
*.TIF
*.gif
*.GIF
*.bmp
*.BMP
*.jpg
*.JPG
*.jpeg
*.JPEG
*.png
*.PNG
*.swf
*.SWF
*.avi
*.rar
*.tgz
*.gz
*.zip
*.avi
*.AVI
*.rmvb
*.flv
*.FLV
*.mpg
*.MPG
*.mpeg
*.wmv
*.WMV
*.exe
*.EXE
*.wav
*.WAV
*.tmp
*.txt
*.TXT
*.log