rsync
元のファイルを使用してターゲットのすべてのファイルを削除する方法があるかどうか疑問に思います。ソースには30個以上のディレクトリがあり、ターゲットには100個以上のファイルがあります。
ターゲットから30+を再帰的に削除し、rsync
これを行うのに役立つ可能性がある他のものがあるかどうか疑問に思います。
源泉
a/
b/
c/
目的地
a/
abc/
xyz/
b/
c/
...
ベストアンサー1
私はこれがそうなるとは思わないがrsync
、ファイルリストを作成し、そのリストを修正し、スクリプトでターゲットにコピーすることができます。
ファイル名に改行や一重引用符('
)が含まれていないとし、ソースマシンで次のコマンドを実行します。
cd basedir
find . -type f | sed 's/^/rm -f '\''/' | sed 's/$/'\''/' > /var/tmp/to_remove
次に、ファイルをターゲットto_remove
システムのcd
デフォルトディレクトリにコピーしてインポートします。存在しませんが、リスト内のファイルは何の影響も与えず、ターゲットでのみ利用可能な他のファイルには触れません。
ディレクトリも削除したい場合は、追加のディレクトリを使用できますが、これにより、ディレクトリからファイルが削除されたかどうかに関係なく、ソースに存在し、ターゲットに空のディレクトリが削除されます。
find . -depth -type d | sed 's/^/rmdir -f '\''/' | sed 's/$/'\''/' > /var/tmp/to_remove