mv使用文件名扩展操作导致文件消失

时间:2015-04-10 23:47:39

标签: bash

我有一堆名为

的文件
index.html.1
index.html.2
...

我尝试编写一个bash脚本来修复所有扩展

for file in *.html.*
do
  mv "$file" "${file%.html.*}.jpg"
done

这使得所有文件都消失了。 我做了什么?!

1 个答案:

答案 0 :(得分:2)

您已将每个index.html文件一次一个地移动到相同的目标文件名。不幸的是,除了最后一个以外,所有这些都被覆盖了。

touch index.html.{1,2,3,4,5}
for file in *.html.*; do echo mv "$file" "${file%.html.*}.jpg"; done

输出

mv index.html.1 index.jpg
mv index.html.2 index.jpg
mv index.html.3 index.jpg
mv index.html.4 index.jpg
mv index.html.5 index.jpg