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 在那段时间找不到文件。
感谢您的帮助。
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 在那段时间找不到文件。
感谢您的帮助。