我正在尝试将给定目录中后缀为“.foo”的所有文件转换为包含相同基本名称但后缀修改为“.bar”的文件。我可以使用 shell 脚本和 for 循环来做到这一点,但我想编写一个可以实现相同目标的单行代码。
目标:
输入:*.foo
输出:*.bar
这是我尝试过的:
find . -name "*.foo" | xargs -I {} mv {} `basename {} ".foo"`.bar
这很接近但不正确。结果:
输入:*
.foo 输出:*.foo.bar
关于为什么给定的后缀不被basename识别的任何想法?".foo" 周围的引号是可有可无的,如果省略它们,结果是相同的。