web-dev-qa-db-ja.com

ファイル名の部分に基づいてファイルをサブフォルダーに並べ替えるにはどうすればよいですか?

これらはディレクトリ内のファイルです:

Ford-Mustang-001.jpg
Ford-Mustang-002.jpg
Ford-Mustang-003.jpg

Chevy-Impala-001.jpg
Chevy-Impala-002.jpg
Chevy-Impala-003.jpg

これらをサブフォルダーに分類したいと思います。

/Mustang
/Impala
4
Mike

prenameの使用(Perlの名前変更)

prename 'if(/(.+?)-(.+?)-(.*)/){mkdir $2; $_="$2/$_"}' *.jpg
4
JJoao

明白な答え:

ディレクトリを作成してファイルを配置するだけです。

mkdir Mustang Impala
mv *Mustang*.jpg Mustang/
mv *Impala*.jpg Impala/

これはファイルグロブ;と呼ばれます。これはシェル機能です。


膨大な数のファイルがあり、それらに対応するために多くの異なるディレクトリを作成する必要がある場合は、 JJoaoの回答 を試してください。

6
Wildcard