-2

Debian Linux には、大きなフォルダー ツリーに整理された膨大な数のテキスト ファイルがあります。必要なのは、特定の名前パターンを持つすべてのテキスト ファイルを見つけて、それを含むフォルダーを移動先に移動することです。

例:

/home/spenx/src/a12/a1a22.txt
/home/spenx/src/a12/a1a51.txt
/home/spenx/src/a12/a1b61.txt
/home/spenx/src/a12/a1x71.txt

/home/spenx/src/a167/a1a22.txt
/home/spenx/src/a167/a1a51.txt
/home/spenx/src/a167/a1b61.txt
/home/spenx/src/a167/a1x71.txt

コマンド:

find /home/spenx/src -name "a1a2*txt"
mv /home/spenx/src/a12 /home/spenx/dst
mv /home/spenx/src/a167 /home/spenx/dst

結果:

/home/spenx/dst/a12/a1a22.txt
/home/spenx/dst/a167/a1a22.txt

ご協力ありがとうございました。

SK

4

5 に答える 5

5

とを組み合わせてfind、問題を解決する必要があり ますdirnamemvxargs

find /home/spenx/src -name "a1a2*txt" | xargs -n 1 dirname | xargs -I list mv list /home/spenx/dst/

findファイルのリストを取得します

dirnameファイルのパスを抽出します。一度に 1 つの引数しかとれないことに注意してください。

mvソースディレクトリを宛先に移動します

xargsあるコマンドの出力を次のコマンドに引数として渡すためのキーです

で使用されるオプションの詳細については、端末で行うだけのマニュアル ページxargsを参照してください。man xargs

于 2013-09-27T18:40:23.217 に答える
2

以下を実行できます。

    find /home/spenx/src name "a1a2*txt" -exec mv {} /home/spenx/dst \;

フォント: http://www.cyberciti.biz/tips/howto-linux-unix-find-move-all-mp3-file.html

于 2013-09-27T18:46:51.633 に答える