さまざまなサブフォルダからサブフォルダにファイルを移動する

さまざまなサブフォルダからサブフォルダにファイルを移動する

さまざまなフォルダがあり、各フォルダには次のファイルが含まれています。

/.example1/example1.txt
/.example1/example2.txt
/.example2/example1.txt
/.example2/example2.txt
etc.

次のように、各ファイルを親フォルダのサブフォルダに移動する方法を見つけたいと思います。

/.example1/folder/example1.txt
/.example1/folder/example2.txt
/.example2/folder/example1.txt
/.example2/folder/example2.txt
etc.

大量のファイルをすばやく簡単に処理できる方法についてのアイデアはありますか?使ってみましたが、find幸運ではありませんでした。

答え1

次のようにfindGNUバージョンを使用してこれを実行できます。mv

find . -mindepth 2 -maxdepth 2 -type f -execdir mv -vt ./folder/. {} +

検索を2レベルの深さの通常のファイルに制限findし、このオプションを使用して選択したファイルを選択したファイルに隣接するサブディレクトリに移動します-execdirfolder

答え2

find /.example1 -name example*.txt" -type f | awk -F\/ '{ for(i=1;i<=NF-1;i++) {  path=path$i"/" } } END { print "mv "$0" "path"folder/"$NF }' | sh

ディレクトリ内のすべてのサンプルファイルを見つけて、awkを使用して返された出力をshとして実行される移動コマンドに解析します。

関連情報