rename
有点危险,因为根据其手册页:
像这样的文件名会很乐意做错事c.txt.parser.y
。
这是使用find
和的解决方案bash
:
find -type f -name '*.txt' | while read f; do mv "$f" "${f%.txt}"; done
请记住,如果文件名包含换行符(罕见,但并非不可能),这将中断。
find -type f -name '*.txt' -print0 | while read -d $'\0' f; do mv "$f" "${f%.txt}"; done