2012-04-28 6 views
0

ファイルを移動先の場所(ボリューム外)に移動し、元のファイルとディレクトリを削除し、すべての属性を保持したまま元の場所に戻すスクリプトを作成する必要があります。最下位のディレクトリで動作するようにディレクトリツリーを再帰的に処理する方法

概念はアルゴリズム的に単純ですが、実際のハングアップはrsyncを使用しているときに適切にツリーを再帰させることです。

これまでのところ、ファイルをコピーするのに最も効率的なソリューションはrsync -axvvES --remove-source-files source_directory /destination/だと言われていますが、サイズの制約からrsyncがツリー自体を再帰できるようにすることはできません。最終的に私はfindを使用してドリルダウンしてからrsyncを実行することができますが、この目標を達成するには、どうすれば最も低いポイントに最初にfindを下降させることができますか?

UPDATE:

最終的にはこれは十分トリックを行うように見えた:

echo -e "Moving over... " 
rsync -axvES --remove-source-files ${SRC_FILE_AND_PATH} ${DESTINATION_PATH}/ 
echo -e "Bringing back... " 
rsync -axvES --remove-source-files ${DESTINATION_PATH}/${SRC_BASENAME} ./ 

これは、作業ディレクトリ内のフォルダを残していますが、それは上書き移動して最初のフォルダに正しく属性んので、私は空の残りのディレクトリをrmできます。

+0

私はあなたの現在のコマンドに満足できないものは理解していません。最初に目的地のディレクトリを作成してから、それらを移入する必要があります。何をやりたいのですか?もし問題が削除の順序であれば、正確に何をしたいのですか? '--delete- *'オプションは適切ではありませんか? – Gilles

答えて

1

コマンドの-depthには、尋ねるように振る舞うスイッチがあります。

関連する問題