rsync刪除目標機器中非空文件夾

rsync

命令說明:

--exclude:上傳/刪除失效

上傳時:不上傳指定文件/目錄

刪除時:不刪除指定文件/目錄

--delete:刪除所有上傳目錄不存在的文件/目錄,但是,不刪除任何目標文件在exclude中的文件/目錄

--delete-exclude:將--exclude功能設置爲針對上傳,刪除時失效。即刪除目標路徑中所有上傳目錄不存在的文件/目錄,但是所有exclude中的內容都生效,特別危險。建議使用修飾符-s方式。

-n選項:預先檢查本次刪除操作涉及到的文件

--include/exclude中修飾符

 -s:設置exclude中的排除只針對上傳,刪除失效

實驗:

src:上傳機器

desc:目標機器

exclude:上傳和刪除都排除某個pattern(*.sh)

-n選項:預先檢查本次刪除操作涉及到的文件

 

需求:

a、上傳時,src機器不上傳*.sh和*.txt文件,使用exclude實現

b、只刪除desc中src不存在的*.sh文件並清除相關目錄,即*.txt文件不受影響。

 

 

如下圖所示,我想刪除desc機器中conkg/tsh/test.sh同時刪除conkg/tsh文件夾:

 

注意:實驗時,默認加上-n選項,只查看不刪除。

1、使用--delete命令時,發現並不會能夠刪除conkg/tmp文件夾和test.sh文件:

rsync -rvz --exclude-from del.txt -n --delete conkg [email protected]:/home/kg/tmp

 

2、使用--delete-excluded,發現desc中所有src中不存在的*.sh和*.txt文件都被刪除了

rsync -rvz --exclude-from del.txt -n --delete-excluded conkg [email protected]:/home/kg/tmp

 

3、使用-s修飾符效果:看到只會刪除tsh文件夾和test.sh文件

 

可以看到desc機器中tsh文件夾和test.sh文件都被刪除了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章