ファイルを移動先の場所(ボリューム外)に移動し、元のファイルとディレクトリを削除してから、すべての属性を保持したまま元の場所に戻すスクリプトを作成する必要があります。
概念はアルゴリズム的にはかなり単純ですが、私が抱えている実際のハングアップは、rsyncを使用しているときにツリーを適切に再帰することです。
これまでのところrsync -axvvES --remove-source-files source_directory /destination/
、ファイルをコピーするための最も効率的なソリューションのようですが、前述のように、サイズの制約により、rsyncにツリー自体を単純に再帰させることはできません。最終的には、ドリルダウンして実行find
できるようにするために使用できると思いますが、この目標を達成するために、最初に最低点まで降りるにはどうすればよいですか?rsync
find
アップデート:
最終的に、これはうまくトリックを行うように見えました:
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することができます。