在一个目录中,我有一些*.html文件。我想把它们都重命名为*.txt
我该怎么做呢?我使用bash shell。
在一个目录中,我有一些*.html文件。我想把它们都重命名为*.txt
我该怎么做呢?我使用bash shell。
当前回答
对于Ubuntu用户:
rename 's/\.html$/\.txt/' *.html
其他回答
你也可以在Bash中创建一个函数,将它添加到。bashrc或其他文件中,然后在任何你想使用的地方使用它。
change-ext() {
for file in *.$1; do mv "$file" "$(basename "$file" .$1).$2"; done
}
用法:
change-ext css scss
源代码的功能:https://stackoverflow.com/a/1224786/6732111
类似于之前的建议,我是这样做的:
find . -name '*OldText*' -exec sh -c 'mv "$0" "${0/OldText/NewText}"' {} \;
我首先用
find . -name '*OldText*' -exec sh -c 'echo mv "$0" "${0/OldText/NewText}"' {} \;
不幸的是,可移植并不是一件简单的事情。你可能需要一点魔法。
for file in *.html; do echo mv -- "$file" "$(expr "$file" : '\(.*\)\.html').txt"; done
一旦你满意了,就把回声移开,它会按你想的做。
Edit: basename对于这种特殊情况可能可读性更好一些,尽管expr通常更灵活。
重命名当前目录和子目录下所有文件的扩展名,不需要任何其他包(仅使用shell脚本):
在当前目录下创建shell脚本rename.sh,代码如下: #!/bin/bash 在$(查找。- name“* 1美元”);做 Mv "$file" "${file%$1}$2" 完成 通过./rename.sh .old .new运行它。 例如:./rename.sh .html .txt
在Mac上……
如果你没有安装rename: brew Install rename 重命名-S .html .txt *.html