Bash
如何在閱讀時修改此內容;mv printf`程式碼僅重命名某些文件類型的文件?
有問題的程式碼:
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
文件,而不是重命名包括目錄在內的所有內容。
這將重命名所有
.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
。