根据模式重命名目录

时间:2013-03-27 09:55:32

标签: unix directory find

我目前正在尝试将包含 123 的所有目录重命名为 321
例如,如果我有一个名为test123test的目录,我想将其重命名为test321test。

到目前为止,我有一些看起来像:find . -depth -name *123* -exec mv {} 我遇到问题的地方 \;
因为我不知道如何根据原来的名称替换文件夹的名称。

如果您对如何继续有任何想法,请随时做出贡献。

1 个答案:

答案 0 :(得分:2)

尝试使用for循环:

for dir in `find . -type d -depth X -name '*123*'` ; do
    mv "$dir" "${dir/123/321}"
done

注意:您需要在上面编辑X。如果有像“./dir123/dir123/

这样的路径,它可能会失败