Bash: 重命名文件扩展名,出现错误

Bash: renaming file extension, getting errors

root@myhost# ./removedott.sh
Mon Nov 23 10:07:04 EST 2015 - Renaming tester.xml.P.T extension to xml
mv: `tester.xml.P.T' and `tester.xml' are the same file

removedott.sh:

if [[ $(find . -type f -name "*.T"  | wc -l) -gt 0 ]]
        then
              for f in *.T
                        do
                                echo "`date` - Renaming $f extension to xml"
                                y=${f%%.*}
                                mv -v -- "$f" "${y}.xml"
                                done
fi

我不知道为什么会出现该错误,我意识到文件是相同的..这就是全部目的..我只是想重命名它。

这不是为什么您的 mv 不起作用的答案,而只是执行相同操作的脚本的另一个版本:

#!/bin/bash
# Renames ".T" extensions to ".xml" extensions for files in the current
# directory and subdirectories
for file in $(find . -type f -name "*.T"); do
    echo "$(date) - Renaming $file extension to .xml"
    mv -v $file $(echo $file | sed 's/\.T$/\.xml/g')
done

这对我有用。希望对您有所帮助!

所有这些解决方案,甚至我的都可以正常工作。这最终成为在重命名期间影响文件的主机上的一个进程。 Linux 在那段时间找不到文件。

感谢您的帮助。