在一个目录中,我有一些*.html文件。我想把它们都重命名为*.txt
我该怎么做呢?我使用bash shell。
在一个目录中,我有一些*.html文件。我想把它们都重命名为*.txt
我该怎么做呢?我使用bash shell。
当前回答
rename 's/\.html$/\.txt/' *.html
这正是你想要的。
其他回答
如果你更喜欢PERL,这里有一个简短的PERL脚本(最初由PERL的创造者Larry Wall编写),它将完全满足你的需求: tips.webdesign10.com/files/rename.pl.txt。
对于你的例子,下面的方法应该可以奏效:
rename.pl 's/html/txt/' *.html
你想要使用rename:
rename -S <old_extension> <new_extension> <files>
rename -S .html .txt *.html
这正是你想要的-它将所有匹配*.html的文件的扩展名从.html更改为.txt。
注意:Greg Hewgill正确地指出这不是bash内置的;是一个单独的Linux命令。如果你只是需要Linux上的一些东西,这应该可以工作;如果你需要一些更跨平台的东西,那就看看其他的答案。
这是我发现的在OSX和Linux上工作的最灵活的解决方案,它也可以很好地与git一起工作!
找到。-name "*.js" -exec bash -c 'mv "$1" "${1%.js}"Tsx ' - '{}' \;
对于git:
找到。-name“* . js - c“git bash -exec mv“1美元${1%。js的”。tsx“-”{}“\”
在Mac上……
如果你没有安装rename: brew Install rename 重命名-S .html .txt *.html
一行,没有循环:
ls -1 | xargs -L 1 -I {} bash -c 'mv $1 "${1%.*}.txt"' _ {}
例子:
$ ls
60acbc4d-3a75-4090-85ad-b7d027df8145.json ac8453e2-0d82-4d43-b80e-205edb754700.json
$ ls -1 | xargs -L 1 -I {} bash -c 'mv $1 "${1%.*}.txt"' _ {}
$ ls
60acbc4d-3a75-4090-85ad-b7d027df8145.txt ac8453e2-0d82-4d43-b80e-205edb754700.txt