如何在Unix/Linux中为文件夹内所有文件添加.xml扩展名

11 投票
4 回答
13912 浏览
提问于 2025-04-17 00:50

我想把一个文件夹里的所有文件都改个名字,并且给它们加上一个 .xml 的后缀。我在使用Unix系统。请问我该怎么做呢?

4 个回答

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

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

4

我不知道这是不是标准做法,但我的 Perl 包(在 Debian/Ubuntu 系统上)里包含一个 /usr/bin/prename 的文件(还有一个指向它的链接叫 rename),这个文件没有其他的用途:

rename 's/$/.xml/' *
22

在命令行里,你可以这样做:

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 ';'

撰写回答