1. 程式人生 > 實用技巧 >Linux下tar、cp命令排除某個目錄或檔案

Linux下tar、cp命令排除某個目錄或檔案

1.Linux下使用tar命令解壓/壓縮gz檔案很簡單,使用一行命令就可以搞定。

tar解壓gz檔案 tar zxvf filename.tar.gz

tar壓縮gz檔案 tar zcvf filename.tar.gz dirname

有時候,我們打包壓縮某一個目錄,而需要排除其中一個目錄或檔案。這時我們使用tar命令,增加--exclude引數就能達到目的。

我們以Nginx為例,打包壓縮時我們要排除nginx下的logs目錄,命令如下:

tar zcvf filename.tar.gz --exclude=nginx/logs nginx

如果要排除多個目錄,增加--exclude即可,如下命令排除nginx下的logs和conf兩個目錄及檔案temp.txt:

tar zcvf filename.tar.gz --exclude=nginx/logs --exclude=nginx/conf --exclude=nginx/temp.txt nginx

2.Linux下使用cp命令排除不需要的目錄或檔案比較麻煩,建議使用rsync命令。

rsync命令和tar命令排除目錄相似也是使用--exclude引數。

rsync命令 -a引數表示archive模式,-v表示詳細鏈模式輸出,-z表示傳輸檔案時使用壓縮傳輸的模式。

注意:--exclude後面的路徑不能為絕對路徑,必須為相對路徑才可以,否則出錯。

我們以Apache為例,拷貝時我們要排除apache下的logs和conf目錄,命令如下:

rsync -av --exclude=apache/logs --exclude=apache/conf apache backup