문제의 코드:
ls | cat -n | while read n f; do mv "$f" `printf "video_%03d.mp4" $n`; done
위 코드는 실행 디렉터리의 모든 파일/폴더 이름을 다음과 같이 바꿉니다.
video_001.mp4
video_002.mp4
video_003.mp4
and so on...
그러나 특정 유형의 파일만 대상으로 지정하는 것이 좋습니다. 예를 들어 .mp4
모든 것(디렉토리 포함)의 이름을 바꾸는 것보다 파일 이름만 바꾸는 것이 좋습니다.
답변1
.mp4
그러면 구문 분석 없이 모든 파일의 이름이 변경됩니다 ls
.
i=1; for file in *.mp4; do mv "$file" $(printf "video_%03d.mp4" "$i"); i=$((i + 1)); done
명령문에는 모든 glob을 사용할 수 있습니다 for file in ...
. 를 사용하여 다른 기준을 적용할 수 있습니다 find
.