【问题标题】:recursively rename files and replacing characters递归重命名文件和替换字符
【发布时间】:2018-12-31 05:13:31
【问题描述】:

~/foo/ 目录中有一些文件/目录名称,我想使用 bash 脚本递归地替换它们。

我想将 目录 名称中每次出现的 space 替换为 .。此外,文件名称中每次出现space-

我搜索了类似的问题,所有这些问题都使用命令find,但我找不到使用它的方法。

【问题讨论】:

    标签: bash replace find filenames


    【解决方案1】:

    要替换目录,你可以试试这个:

    find ~/foo -type d -name "* *" -execdir perl-rename -v 's/ /./g' '{}' \+
    

    对于文件:

    find ~/foo -type f -name "* *" -exec perl-rename -v 's/ /-/g' '{}' \;
    

    使用的选项

    • -type [fd] 指定文件或目录。
    • -name 仅匹配具有space 的目录/文件
    • -exec\-execdir 执行命令,在这种情况下,perl-rename

    注意

    取决于您的 S.O.你可以只使用rename 而不是perl-rename

    【讨论】:

    • 如果唯一的答案(恰好是已接受的答案)将被否决,至少要评论原因!
    猜你喜欢
    • 1970-01-01
    • 2014-08-11
    • 2012-04-27
    • 2020-11-23
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    相关资源
    最近更新 更多