Files

文件名修改

  • September 21, 2021

假設我有 1000 個文件,名為 file1.txtfile1000.txt

如果數字可以被 10 整除,我需要更改文件名。

我這樣做了,它只是改變了第一個字母

for f in *.txt; do mv -- "$f" "${f%.txt}.doc"; done

@Henrik supports the community的評論很貼切。此外,我一直主張列印要執行的命令,然後仔細查看這些命令。這為您提供了內置的“試執行”功能。 如果命令看起來正確,則再次執行腳本並將輸出通過管道傳輸到sh. OTOH,如果命令不正確,則沒有造成損壞。

for f in *0.txt
do
   printf 'mv -- %q %q\n' "$f" "${f%.txt}.doc"
done

感謝 Stéphane Chazelas 建議更安全地使用printf%q指令。

引用自:https://unix.stackexchange.com/questions/669181