在目錄中,我有一堆*.html文件。我想將它們全部重命名為*.txt我怎樣才能做到這一點?我使用bash外殼。
3 回答

慕田峪7331174
TA貢獻1828條經驗 獲得超13個贊
如果使用bash,則不需要sed,basename,rename,expr等外部命令。
for file in *.html
do
mv "$file" "${file%.html}.txt"
done

開滿天機
TA貢獻1786條經驗 獲得超13個贊
這在OSX上對我有效,從.txt到.txt_bak
find . -name '*.txt' -exec sh -c 'mv "$0" "${0%.txt}.txt_bak"' {} \;

犯罪嫌疑人X
TA貢獻2080條經驗 獲得超4個贊
要獲得更好的解決方案(僅具有bash功能,而不是外部調用),請參閱其他答案之一。
以下將執行且不需要系統具有rename程序(盡管您通常會在系統上擁有該程序):
for file in *.html; do
mv "$file" "$(basename "$file" .html).txt"
done
編輯:正如評論中指出的那樣,這對于沒有正確引用(現在已在上面添加)的文件名中不帶空格的文件不起作用。當純粹在自己的文件上工作(您知道文件名中沒有空格)時,這將起作用,但是只要您編寫以后可以重用的文件,就不要跳過正確的引用。
- 3 回答
- 0 關注
- 787 瀏覽
添加回答
舉報
0/150
提交
取消