歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

Linux 用cp和rsync同步文件時跳過指定目錄的方法

需求是:某測試站點,在某個節點的時候需要同步到正式站點去,但是裡面的config目錄不能覆蓋,


方法一:終端命令行下執行以下命令
cp -R `find /projectA -type d -path /projectA/common/config -prune -o -print | sed 1d ` /projectB/

方法二:

localhost # find projectB/ommon/config | xargs touch 修改目標目錄的congfig目錄文件的access time到當前,這樣cp的時候加update參數可以避開該目錄
localhost # cp -r -u -v projectA/* projectB/ 這樣不會復不復制projectA下面第一級的隱藏目錄,但是二級三級的還是會復制過去

所以適用於沒有隱藏目錄的情況下,比較方便.

但是我們的項目因為牽涉SVN什麼的,所以會有很多隱藏目錄包含版本控制信息,就會很亂,所以有了第二種方案

方法三:

rsync -vauP --exclude=".*“ --exclude=”common/config“ projectA/ projectB

簡單注釋下
-a 參數,相當於-rlptgoD,-r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有權限;-t 保持文件原有時間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當於塊設備文件;
-P 傳輸進度;
-v 冗余模式,查看到文件列表等
-u update模式,如果目標文件新於源文件,則跳過
第一個exclude表示跳過所有.開頭的隱藏文件
第二個表示調過projectA/common/config目錄,因為config目錄下的文件,輕易不需改變,如果需要手動調整即可,注意這個參數是後面SRC參數的相對路徑
Copyright © Linux教程網 All Rights Reserved