我想遍历一堆目录并将所有以_test.rb结尾的文件重命名为以_spec.rb结尾。这是我从未完全弄清楚如何在bash中完成的事情,所以这次我想付出一些努力来掌握它。到目前为止,我的最佳尝试是:
find spec -name "*_test.rb" -exec echo mv {} `echo {} | sed s/test/spec/` \;
NB:在exec之后有一个额外的echo,这样命令就会被打印而不是被运行,我在测试它。
当我运行它时,每个匹配的文件名的输出为:
mv original original
即sed的替换已经丢失了,有什么技巧吗?