폴더를 만들고 특정 파일을 폴더로 이동하는 Bash 명령

폴더를 만들고 특정 파일을 폴더로 이동하는 Bash 명령

나는 bash를 사용하여 이것을 달성하려고 노력하고 있습니다.

파일 디렉터리가 있고 사진을 가져오는 예는 다음과 같습니다.

January 2010 MA - C3 Edexcel.pdf
January 2010 MS - C3 Edexcel.pdf    
January 2010 QP - C3 Edexcel.pdf    
January 2011 MA - C3 Edexcel.pdf 
January 2011 MS - C3 Edexcel.pdf    
January 2011 QP - C3 Edexcel.pdf

매년 3개의 파일을 가져와 해당 연도의 폴더에 넣는 명령을 찾고 있습니다. 예를 들어 처음 3개 파일은 2010이라는 폴더에 넣고 두 번째 3개 파일 세트는 2010년이라는 폴더에 넣어야 합니다. 2011이라는 폴더에 넣습니다.

그래서 내가 하고 싶은 일은

 mkdir 2010| mv *2010* 2010

파일의 각 연도에 대해

확실히 말하자면, 폴더가 제가 보여드린 것보다 훨씬 더 큽니다. 즉, 해마다 폴더를 만들면 시간이 너무 많이 걸릴 것입니다.

가능합니까?

답변1

이 스크립트 조각은 여러분이 수년 동안 요구해 왔던 내용을 충족시켜 줄 것입니다.

for i in $(seq 2010 2020); do 
    mkdir -p "$i" && 
    mv *"$i"*.pdf "$i"
done

답변2

쉽게 이해하는 방법

mkdir 2010 && mv *2010*pdf !$

2011년에도 마찬가지...

다년 파일을 반복하는 솔루션은 다음과 같습니다.

for i in $(seq 0 9) ; do mkdir 201${i} && mv *201${i}*pdf !$ ; done 

관련 정보