이름 형식이 일치하지 않는 사진 파일이 여러 개 있습니다.
- 노스 비치.JPG
- 사우스 비치 sm.jpg
- 브라이스 윈드서핑.jpg
- DSC01031 1024x.jpg
- DSC02652 sm.jpg 편집
- DSC03229 sm.jpg
- 어린이를 위한 카약 2.jpg
- 마우이 5-05 (31) 1024.jpg
- 마우이 가을 05 (41) sm.jpg
- 마우이 고래(2) sm.jpg
- 마우이 고래(6) ed.jpg
- P1000018 sm.jpg
- P1000030 sm.jpg
- P1000056 sm.jpg
- P1000148 sm.jpg
- P1000397 sm.jpg
- P1000490 sm.jpg
- P1000629 sm.jpg
- P1000995 sm.jpg
- P1010006 1024.jpg
- P1010089 1024x.jpg
- P1050988edsm.jpg
확장명 이름을 바꾸는 대신 목록의 첫 번째 .jpg 이름을 1.jpg, 두 번째 2.jpg, 세 번째 3.jpg 등으로 바꿉니다. 명령 하나로 이 작업을 어떻게 수행할 수 있나요?
답변1
쉘에서 루프를 사용하십시오.
for x in * ; do mv -- "$x" "$((i=i+1)).jpg" ; done
현재 디렉터리에 있는 각 파일을 한 번에 하나씩 살펴보고, 호출한 다음 , 매번 1씩 증가하면서 x
해당 위치로 이동합니다 . $i.jpg
예$i
$((...))
산술 확장, 할당은 할당된 값을 반환하므로 i
매번 새로운 숫자가 수정되어 반환됩니다.
예를 들어 다른 디렉터리에서 이 작업을 여러 번 수행하려면 그 사이에 카운터를 재설정해야 합니다. 라고 말하거나 명령 시작 부분 i=0
에 입력하면 됩니다.i=0;