递归重命名文件并替换字符
recursively rename files and replacing characters
在目录 ~/foo/
中有一些 file/directory 名称,我想使用 bash 脚本递归替换它们。
我想将 目录 名称中出现的每个 space
替换为 .
。此外,在 文件 名称中每次出现 space
到 -
。
我搜索过类似的问题,所有这些问题都使用命令 find
,但我找不到使用它的方法。
要替换目录,您可以试试这个:
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
仅匹配 directories/files 与 space
-exec\-execdir
执行命令,在本例中,perl-rename
注意
取决于您的 S.O。您可以只使用 rename
而不是 perl-rename
。
在目录 ~/foo/
中有一些 file/directory 名称,我想使用 bash 脚本递归替换它们。
我想将 目录 名称中出现的每个 space
替换为 .
。此外,在 文件 名称中每次出现 space
到 -
。
我搜索过类似的问题,所有这些问题都使用命令 find
,但我找不到使用它的方法。
要替换目录,您可以试试这个:
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
仅匹配 directories/files 与space
-exec\-execdir
执行命令,在本例中,perl-rename
注意
取决于您的 S.O。您可以只使用 rename
而不是 perl-rename
。