我想重命名文件夹中的所有文件并添加.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/'
In Python:
使用os.listdir
查找目录中所有文件的名称。如果您需要递归地查找子目录中的所有文件,请使用os.walk
。它的API比os.listdir
更复杂,但它提供了递归遍历目录的强大方法。
然后使用os.rename
重命名文件