rsync --remove-source-filesの後にフォルダを削除する方法は?

rsync --remove-source-filesの後にフォルダを削除する方法は?

使用せずにフォルダを別の場所に移動したいです。mv

私は使う

rsync -aAXHv --remove-source-files <source> <destination>

ただし、ソースフォルダには<source>まだコンテンツがありません。空のソースフォルダをすべて削除するオプションはありますか?

答え1

rsyncコマンドに従い、rmコピーが成功した場合にのみ実行されるように保護します。

rsync -aAXHv --remove-source-files {src} {dst} &&
    rm -rf {src}

もちろん、この組み合わせを使用すると、もはや--remove-source-files

答え2

私は空のフォルダを賢く整理するのが好きです。私は走る:

find folder -type d -empty -exec rmdir {} \;

空のサブフォルダを繰り返し削除するのに必要なだけ繰り返すと、空のフォルダのみが削除されます(rmdirにはセキュリティ機能が組み込まれていて空でないフォルダは削除されないため)。したがって、「rsync」については後で学ぶことはありません。 "このファイルの移動に失敗しました。無差別代入でrm -fr /唯一のコピーを破壊しました。" ;-)

zshプロのヒント:

repeat 15 find folder -type d -empty -exec rmdir {} \;

ほとんどすべての空のフォルダスタックを処理します。

関連情報