在目录~/foo/
中,我想使用bash脚本递归替换一些文件/目录名称。
我想将目录名称中每次出现的space
替换为.
。另外,文件名称中每次出现space
至-
。
我搜索了类似的问题,所有问题都使用命令find
,但是我找不到使用它的方法。
答案 0 :(得分:0)
要替换目录,您可以尝试以下操作:
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
。