Bash
為沒有副檔名的文件添加文件副檔名
我在各種不同的子目錄中有數百個文件。其中一些具有正確的文件副檔名,但其中一些沒有。我想重命名所有沒有文件副檔名的文件,並將 .mp4 副檔名附加到它們的文件名中。其他文件應保持不變。如何使用 Bash 自動執行此重命名操作?或者我需要像 Perl 或 Python 這樣的真正的腳本語言嗎?
像這樣的東西:
find . -type f ! -name "*.*" -exec mv {} {}.mp4 \;
試試這個:
find -type f -not -name '*.mp4' -exec rename -n 's/$/.mp4/' {} +
這將檢查目前目錄中的所有文件及其不以結尾的子文件夾
.mp4
並重命名它們以添加副檔名假設
perl
基於rename
命令,-n
選項是顯示文件將如何重命名。一旦你沒問題,刪除該選項並再次執行該命令例子:
$ find -type f ./rand_numbers.txt ./tst ./abc/123 ./abc/zyx.txt $ find -type f -not -name '*.mp4' -exec rename -n 's/$/.mp4/' {} + rename(./rand_numbers.txt, ./rand_numbers.txt.mp4) rename(./tst, ./tst.mp4) rename(./abc/123, ./abc/123.mp4) rename(./abc/zyx.txt, ./abc/zyx.txt.mp4)
如果您將沒有副檔名的文件定義為沒有名稱
.
的文件名,請使用:$ find -type f -not -name '*.*' -exec rename -n 's/$/.mp4/' {} + rename(./tst, ./tst.mp4) rename(./abc/123, ./abc/123.mp4)