![在 Ubuntu Server 12.04 上,如何编写一个以递归方式用空格替换下划线的 shell 脚本?](https://linux22.com/image/1113679/%E5%9C%A8%20Ubuntu%20Server%2012.04%20%E4%B8%8A%EF%BC%8C%E5%A6%82%E4%BD%95%E7%BC%96%E5%86%99%E4%B8%80%E4%B8%AA%E4%BB%A5%E9%80%92%E5%BD%92%E6%96%B9%E5%BC%8F%E7%94%A8%E7%A9%BA%E6%A0%BC%E6%9B%BF%E6%8D%A2%E4%B8%8B%E5%88%92%E7%BA%BF%E7%9A%84%20shell%20%E8%84%9A%E6%9C%AC%EF%BC%9F.png)
到目前为止我已经:
for file in *\_*
do file_clean="${file//_/ }"
mv --verbose "$file" "$file_clean"
done
但是,它只重命名文件夹根目录中的文件。如何让它在该目录下的所有文件和文件夹中将下划线文件递归重命名为空格?
答案1
考虑使用 find 命令(请参阅 man find)。它将遍历所有子目录,并可以使用 -exec {} 选项对每个文件名运行命令文件。
到目前为止我已经:
for file in *\_*
do file_clean="${file//_/ }"
mv --verbose "$file" "$file_clean"
done
但是,它只重命名文件夹根目录中的文件。如何让它在该目录下的所有文件和文件夹中将下划线文件递归重命名为空格?
考虑使用 find 命令(请参阅 man find)。它将遍历所有子目录,并可以使用 -exec {} 选项对每个文件名运行命令文件。