20
使用find和sed递归重命名文件
我想浏览一堆目录,并将以_test.rb结尾的所有文件重命名为以_spec.rb结尾的文件。这是我从未真正弄清楚如何使用bash的事情,因此这一次我想我会花些力气将它钉牢。但是到目前为止,我的最大努力是: find spec -name "*_test.rb" -exec echo mv {} `echo {} | sed s/test/spec/` \; 注意:exec之后有一个额外的回显,以便在测试时打印命令而不是运行命令。 当我运行它时,每个匹配文件名的输出是: mv original original 即用sed替代已丢失。诀窍是什么?