linux 打包排除多个目录,tar打包整个目录(可排除子目录)几种方法
例1。壓縮并打包目錄
tar -czf small.tar.gz small(目錄名)? ;
例2。
tar zcvf backup.tar.gz site/* –exclude=site/attach –exclude=site/images
簡單解釋一下:
ls -l | grep “^-” 用來把當前目錄下所有文件列出來,不包括子目錄;
awk ‘{print “dollar”8}’ 用來把ls和grep輸出的文件名取出來;
xargs 將前面一串的輸出,也就是一個文件名的列表組織成一個參數傳遞給tar命令。
如果只是排除一兩個目錄,可以用tar命令的–exclude= 選項。
例如排除site目錄下的attach和images目錄:
tar zcvf backup.tar.gz site/* –exclude=site/attach –exclude=site/images
例2
tar 打包目錄時排除其中某一子目錄的方法
具體的命令如下:
tar cfz ff-bb.cn.tar.gz /var/www/ff-bb.cn/ –exclude=var/www/ff-bb.cn/download
如果需要排除多個子目錄,那么就執行
tar –exclude=var/www/ff-bb.cn/download –exclude=var/www/ff-bb.cn/download2 cfz hosteguide.com.tar.gz /var/www/hosteguide.com/
注意 –exclude后面的排除目錄后不能帶/ ,否則不起作用。
解包到指定的目錄:使用 tar 的 -C 選項,如 tar xvf newarc.tar.gz -C tmp/a/b/c。
如:
tar –exclude=/usr/local/nginx/html/htdocs/download/backup? –exclude=/usr/local/nginx/html/htdocs/othersites -czvf /usr/local/resourcebackup/resource-`date +”%Y-%m-%d_%H-%M-%S”`.tar.gz /usr/local/nginx/html/htdocs/*
例3
假設 test目錄下有 1 2 3 4 5 這5個目錄
現在要將 3 4 5目錄tar打包,1和2目錄不要
命令如下
tar -zcvf? test.tar.gz –exclude=1 –exclude=2 test
或
tar -zcvf? test.tar.gz –exclude=test/1 –exclude=test/2 test
看man tar幫助,–exclude后面跟的好像是正則
注意: 要打包的test必須在命令最后,不然沒有效果
總結
以上是生活随笔為你收集整理的linux 打包排除多个目录,tar打包整个目录(可排除子目录)几种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lofter如何搜索文章(国内应用市场l
- 下一篇: linux系统io查看计算,Linux下