在一个目录中,我有一些*.html文件。我想把它们都重命名为*.txt
我该怎么做呢?我使用bash shell。
在一个目录中,我有一些*.html文件。我想把它们都重命名为*.txt
我该怎么做呢?我使用bash shell。
当前回答
最简单的方法是使用重命名。ul它出现在大多数Linux发行版中
重命名。ul -o -v [oldFileExtension] [newFileExtension][搜索要应用的文件的表达式]
rename.ul -o -v .oldext .newext *.oldext
选项:
-o:不覆盖预先存在的. newnext
- v:详细
-n:演练
其他回答
试试这个
rename .html .txt *.html
用法:
rename [find] [replace_with] [criteria]
你想要使用rename:
rename -S <old_extension> <new_extension> <files>
rename -S .html .txt *.html
这正是你想要的-它将所有匹配*.html的文件的扩展名从.html更改为.txt。
注意:Greg Hewgill正确地指出这不是bash内置的;是一个单独的Linux命令。如果你只是需要Linux上的一些东西,这应该可以工作;如果你需要一些更跨平台的东西,那就看看其他的答案。
这是我用来重命名。edge文件为。blade.php
for file in *.edge; do mv "$file" "$(basename "$file" .edge).blade.php"; done
很有魅力。
最简单的方法是使用重命名。ul它出现在大多数Linux发行版中
重命名。ul -o -v [oldFileExtension] [newFileExtension][搜索要应用的文件的表达式]
rename.ul -o -v .oldext .newext *.oldext
选项:
-o:不覆盖预先存在的. newnext
- v:详细
-n:演练
这里有一个解决方案,使用AWK。确保文件存在于工作目录中。否则,cd到html文件所在的目录,然后执行以下命令:
for i in $(ls | grep .html); do j=$(echo $i | grep -oh "^\w*." | awk '{print $1"txt"}'); mv $i $j; done