如何将.xml扩展名添加到Unix / Linux中文件夹中的所有文件

我想重命名文件夹中的所有文件并添加一个.xml扩展名。 我正在使用Unix。 我怎样才能做到这一点?

在shell上,你可以这样做:

 for file in *; do if [ -f ${file} ]; then mv ${file} ${file}.xml fi done 

编辑

要在所有子目录上递归地执行此操作,应该使用find

 for file in $(find -type f); do mv ${file} ${file}.xml done 

另一方面,如果你要做比这更复杂的事情,你可能不应该使用shell脚本。

更好的是

请使用下面的Jonathan Leffler提供的评论:

 find . -type f -exec mv {} {}.xml ';' 

不知道这是否是标准的,但我的Perl包(Debian / Ubuntu)包含一个/usr/bin/prename (和一个只是rename的符号链接)

 rename 's/$/.xml/' * 
 find . -type f \! -name '*.xml' -print0 | xargs -0 rename 's/$/.xml/' 

Python中

使用os.listdir查找目录中所有文件的名称。 如果您需要递归查找子目录中的所有文件,请使用os.walk 。 它的API比os.listdir更复杂,但它提供了递归遍历目录的强大方法。

然后使用os.rename重命名文件。