Bash

使用 rsync 移動文件夾時如何刪除空源目錄?

  • February 11, 2021

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

引用自:https://serverfault.com/questions/384110