我有一个必须恢复的文件结构,它的名称中包含 :2f
例如目录名称anyname:2fmorename
我希望能够在所有目录和子目录中更改:2f
为。_
我想类似的事情
find . -name *:2f* -type d -execdir mv{} *_* \;
但我无法确定。
答案1
如果你安装了 Perl,rename
你可以这样做:
find . -name '*:2f*' -type d -exec rename 's/:2f/_/g' {} \;
如果你想先测试一下然后添加一个echo
:
find . -name '*:2f*' -type d -exec echo rename 's/:2f/_/g' {} \;
答案2
谢谢,我最终使用以下方法让它工作:
find /path -depth -type d -name '*:2f*' -execdir bash -c 'mv -v "$1" "${1//:2f/_}"' _ {} \;