我运行以下命令以递归方式清除对某些应用程序、脚本或 NFS/SMB 造成问题的文件夹中的字符,即将 更改'
为’
、更改?
为?
(chinese char)、:
更改为:
(chinese char) 等。
$ find . -type d -execdir /usr/local/bin/rename "s/'/’/g" '{}' +
(rename
是 Aristotle Pagaltzis 的 perl 脚本)
问题是,如果给定路径在两个不同级别出现两次或两次以上上述字符,则第二次修改将失败,因为初始路径不再存在,例如,在 中/data/videos/john's pics/folder/last year's bday/folder/
,No such file or directory.
由于它有两个,因此修改将失败'
。
我正在考虑find
从下往上递归运行上述命令,但我不知道如何进行以及这是否是最佳方法。
对于我来说,使用find
或任何其他 nix 脚本/工具(awk
如)都可以。
假设是 GNU findutils,使用
-depth
“find”选项让它在父目录之前输出子目录。