Bash
使用 rsync 移動文件夾時如何刪除空源目錄?
rsync``mv
可以通過以下選項將其引入到移動文件夾中,非常相似且優於傳統文件夾:rsync -axvvES --remove-source-files source_directory /destination/
但是,我似乎還無法做到的一件事是刪除原始目錄。該
--remove-source-files
標誌就是這樣做的,刪除源文件,但不刪除源目錄。我希望也有--remove-source-directories
一面旗幟,但沒有。我該如何處理? 我想我可以
rm -fr
在搬家後發布一個,但是我更願意將整個過程保持在一個過程中,而不是引入潛在的錯誤。
我還沒有找到一個可以一次性完成的命令,但是由於 rsync 仍然比
rm -rf
(特別是如果您有大量目錄)執行得更好,這裡有兩個 rsync 命令可以執行*“移動”*:rsync -av --ignore-existing --remove-source-files source/ destination/ && \ rsync -av --delete `mktemp -d`/ source/ && rmdir source/
我最終陷入了類似的境地。我想避免
rm -rf
,知道 rsync 無法複製某些文件,我不想失去它們。為了簡單地刪除空目錄,我發現這個最方便(來自
sourcedir
):find . -type d -empty -delete