파일 이름 부분을 기준으로 파일을 하위 폴더로 정렬하려면 어떻게 해야 합니까?

파일 이름 부분을 기준으로 파일을 하위 폴더로 정렬하려면 어떻게 해야 합니까?

디렉토리에 있는 파일은 다음과 같습니다.

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

답변1

분명한 대답은 다음과 같습니다.

디렉토리를 만들고 그 안에 파일을 넣기만 하면 됩니다.

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

이것은 ... 불리운다파일 글로빙; 쉘 기능입니다.


엄청난 수의 파일이 있고 이를 수용하기 위해 다양한 디렉토리를 만들어야 하는 경우 다음을 시도하십시오.JJoao의 답변.

답변2

사전 이름 사용(perl renamer)

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

답변3

awk {split $0, a, "-"; mkdir a[1]; mv $0 a[1]/}이름을 바꾸려면 awk를 사용하여 파일 이름을 분할합니다. mv 프로그램을 사용하면 됩니다.

관련 정보