任何人都可以推荐一种安全的解决方案,从给定的根目录开始,在文件和目录名称中递归地用下划线替换空格吗?例如,
$树
.
|-- 一个目录
| `-- 带有空格的文件.txt
`--b 目录
|-- 另一个带有空格的文件.txt
`-- 另一个带有空格的文件.pdf
变成:
$树
.
|-- a_dir
| `--file_with_spaces.txt
`-- b_dir
|-- another_file_with_spaces.txt
`--yet_another_file_with_spaces.pdf
我已经复制了另一个用户的问题,这是主要问题,但我需要添加另一个问题:
我正在使用以下解决方案:
$ find -depth -name '* *' -execdir rename " " "_" {} +;
Run Code Online (Sandbox Code Playgroud)
它有效,但仅替换在项目(目录或文件)上找到的第一个空格。关于如何进行循环以寻找空间并在它们全部消失时停止的任何想法?