これが私の状況です。ローカルには3つのディレクトリに多くのファイルがあります。私はこれらのファイルのサブセット+サーバーに〜30以上のディレクトリを10個構成しました。サーバーのディレクトリと一致するようにローカルコンピュータ上のファイルを移動したいと思います。同時に約30個の追加ファイルをコピーするのが理想的ですが、そうでない場合は手動で実行できます。誰でもこれを達成する方法についての提案はありますか?
さて、例を挙げましょう。私のローカルファイルは3つのディレクトリに分かれています: [ AB .... F ] [ GH ... P ] [ QR .... W ]
私のサーバーには[ABC] [DEF] [GHIJK] [LMNOP] [QR] [STU] [VWXYZ]があります。
ローカルファイルをサーバーの場所に応じてそのローカルディレクトリに移動したい(ファイルを送信せずに) []はディレクトリ、文字はファイルです。
答え1
ファイル間に重複した名前がない場合
- サーバーからファイルのリスト(通常はパブリック
find
ディレクトリに基づく出力)を取得し、ローカルに送信します。 - ローカルでは、すべてのファイルを同じディレクトリに移動します(次を使用)。
find [...] -exec mv -t some/staging/directory {} \;
ローカルでは、CWDをパブリックディレクトリとして使用し、次のコマンドを実行します。
while read f; do mkdir -p $(dirname "$f") mv -v "some/staging/directory/$(basename $f)" "$f" done < files_on_server.lst