我有一个看起来像这样的文件结构:
A/
2098765.1ext
2098765.2ext
2098765.3ext
2098765.4ext
12345.1ext
12345.2ext
12345.3ext
12345.4ext
B/
2056789.1ext
2056789.2ext
2056789.3ext
2056789.4ext
54321.1ext
54321.2ext
54321.3ext
54321.4ext
我需要重命名以
20
开头的所有文件,以10
开头;即我需要将B/2022222.1ext
重命名为B/1022222.1ext
我已经看到许多其他有关重命名多个文件的问题,但似乎无法使其适用于我的情况。只是为了看看我是否能弄清楚自己在做什么,然后才真正尝试进行已经完成的复制/重新命名:
for file in "*/20?????.*"; do
echo "{$file/20/10}";
done
但我得到的只是
{*/20?????.*/20/10}
有人可以告诉我该怎么做吗?
最佳答案
您只是有一点不正确的语法而已:
for file in */20?????.*; do mv $file ${file/20/10}; done
in
的参数中删除引号。否则,不会发生文件名扩展。 $
应该放在方括号