さまざまなフォルダがあり、各フォルダには次のファイルが含まれています。
/.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
次のようにfind
GNUバージョンを使用してこれを実行できます。mv
find . -mindepth 2 -maxdepth 2 -type f -execdir mv -vt ./folder/. {} +
検索を2レベルの深さの通常のファイルに制限find
し、このオプションを使用して選択したファイルを選択したファイルに隣接するサブディレクトリに移動します-execdir
。folder
答え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として実行される移動コマンドに解析します。