在目录中,我有一堆*.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 关注
- 755 浏览
添加回答
举报
0/150
提交
取消