以下からコピーしたいです。/ㅏ到着/氏道がなくなった/雨そして/氏。 (これはパスであり、たとえばマウントを介してリモートの場所を表すことができるとしますsshfs
。)
私は知りたいです...ループを作成し、ファイルシステムを繰り返し、ファイルごとにチェックするよりもきれいな方法はありますか?
ツリーディレクトリのコンテンツ例/ㅏ、/雨、/氏:
/ㅏ:
/A/1abc/qwe
/A/2abc/asd
/A/3abc/zxc
/A/4abc/rty
/雨:
/A/2abc/asd
/A/3abc/zxc
/氏:
/C/1abc/qwe
予想:以下からコピー/ㅏ到着/氏固有パス4abc/rty
:
/A/4abc/rty -> /C/4abc/rty
実際のケースについて説明しましょう/ㅏ、/雨、/氏、次のシナリオにつながります。
- 一部からバックアップを作成します。/源泉(/ㅏ)一部には/目的地(/雨)といくつかのパスをコピーできませんでした。だからあなたはとにかく行方不明のコピーをしたいと思います。だからあなたは見つけます/他の目的地(/氏)を受け入れることができ、欠落しているアイテムのみをコピーしようとしています。複製が制限される理由の例は次のとおりです。/ㅏ到着/雨失敗する可能性があります:ディスクがいっぱいです。/雨(例:ファイル名の長さ)、存在しませんが、/氏ファイルシステムなど
答え1
一つの解決策は共同設置BとC(Cは書き込み分岐として機能します)その後、問題はB + Cから欠落しているファイルをAからB + Cにコピーすることになります。これは次の方法で行うことができます。
rsync -a --ignore-existing /A /B+C
共同設置の場合、1つの可能性は次のとおりです。UnionFS ヒューズ。
unionfs-fuse -o cow /C=RW:/B=RO /B+C
または共用体:
mount -t unionfs -o dirs=/C=rw:/B=ro unionfs /B+C