增量刪除:
mkdir {dirA,dirB} # 創(chuàng)建測試目錄
ouch dirA/{A1,A2,A3} # dirA創(chuàng)建三個文件A1,A2,A3
touch dirB/{B1,B2,B3} # dirA創(chuàng)建三個文件B1,B2,B3
1) 將dirA的所有文件同步到dirB內(nèi),并保留文件的屬主,屬組,文件權(quán)限等信息:rsync -avz dirA/ dirB/
2)將dirA的所有文件同步到dirB內(nèi),并刪除dirB內(nèi)多余的文件:rsync -avz --delete dirA/ dirB/
3)將dirA的所有文件同步到dirB,但是在dirB內(nèi)除了B3這個文件不刪之外,其他的都刪除:rsync -avz --delete --exclude='B3' dirA/ dirB/
4)將dirA目錄內(nèi)的A1.txt和A2.txt不同步到dirB目錄內(nèi):rsync -avz --exclude='A1' --exclude='A2' dirA/ dirB/
5)將dirA目錄內(nèi)的A1和A2不同步到dirB目錄內(nèi),并且在dirB目錄內(nèi)刪除多余的文件:rsync -avz --exclude='A1' --exclude='A2' --delete dirA/ dirB/
6)將dirA目錄內(nèi)的A1和A2不同步到dirB目錄內(nèi),并且在dirB目錄內(nèi)刪除多余的文件,同時,如果dirB內(nèi)有A2和A1這兩個被排除同步的文件,仍然將其刪除:rsync -avz --exclude='A1' --exclude='A2' --delete-excluded dirA/ dirB/
海量刪除:
有時候文件太多,執(zhí)行rm –rf file* 會報錯,進行不下去,這個時候,同樣要考慮到rsync同步刪除操作,且高效快速,其思路,建一個空目錄作為中轉(zhuǎn),再刪除:
rsync --delete-before -avH --progress --stats /tmp/ /yourdir/
-a: 歸檔模式
-v: 顯示全部過程
-H: 保持硬鏈接文件
-progress 在傳輸時顯示傳輸過程
這幾種方法的使用,幾乎可以解決刪除操作中碰到的任何問題,但有幾點必須注意的問題:
1). 有掛載點的情況下,一定要執(zhí)行umount操作
2). 不要刪除目錄的下,執(zhí)行刪除的操作,很蠢
3). 如果執(zhí)行rm -rf /dir1/dir2/dir3/*.*刪除不掉的話,嘗試刪除其父目錄rm -rf /dir1/dir2
上一個教程:Linux為什么會允許刪除文件?
下一個教程:Linux命令之刪除除了某個文件之外所有文件