디렉토리에 있는 모든 이미지 파일의 이름을 바꾸고 해당 파일이 있는 폴더의 이름을 지정해야 합니다.

디렉토리에 있는 모든 이미지 파일의 이름을 바꾸고 해당 파일이 있는 폴더의 이름을 지정해야 합니다.

디렉토리에 있는 모든 이미지 파일의 이름을 바꾸고 해당 파일이 있는 폴더의 이름을 지정해야 합니다. Bash 스크립트를 사용하여 이것이 가능합니까?

또한 연속적으로 번호를 매겨야 합니다(0001.jpg, 0002.jpg, 0003.jpg 등...). 내가 겪고 있는 문제는 숫자 사이에 약간의 점프가 있다는 것입니다. (0018.jpg, 0019.jpg, 0025.jpg, 0026.jpg, 등...) 0025.jpg의 이름을 다음으로 바꾸고 싶습니다. 0020.jpg가 되고 0026.jpg가 0021.jpg가 됩니다.

답변1

예, 가능합니다. find /search/path -type d모든 디렉토리를 찾고 -exec 옵션을 사용하여 디렉토리 경로를 매개변수로 사용하여 일부 작업을 실행할 수 있습니다 . 그리고 NUM=0; for file in /path/to/folder/*.jpg; do mv file NUM.jpg; let "NUM=NUM+1"; done;다음과 같은 bash 스크립트를 실행할 수 있습니다 .

답변2

이 명령을 사용하려면 .jpg 파일이 있는 디렉터리에 있거나 명령을 약간 사용자 정의해야 합니다.

 let a=0; for i in *.jpg; do let a=a+1; b=`basename $PWD`; c=`printf %04d$b.jpg $a`; mv $i $c; done

출력은 다음과 같습니다.

0001<dirname>.jpg

관련 정보