¿Cómo clasifico archivos en una subcarpeta según la parte del nombre del archivo?

¿Cómo clasifico archivos en una subcarpeta según la parte del nombre del archivo?

Estos son los archivos del directorio:

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

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

Me gustaría ordenarlos en subcarpetas:

/Mustang
/Impala

Respuesta1

La respuesta obvia:

Simplemente cree los directorios y coloque los archivos en ellos.

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

Se llamaglobalización de archivos; es una característica del caparazón.


Si tiene una gran cantidad de archivos y necesita crear muchos directorios diferentes para acomodarlos, intenteLa respuesta de JJoao.

Respuesta2

usando prename (cambiador de nombre de Perl)

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

Respuesta3

Dividiría el nombre del archivo usando awk. awk {split $0, a, "-"; mkdir a[1]; mv $0 a[1]/}Si desea cambiar el nombre, puede hacerlo con el programa mv.

información relacionada