使用查找和重命名递归删除目录和文件名中的所有反斜杠

使用查找和重命名递归删除目录和文件名中的所有反斜杠

我想扩展最近的一个问题,我要求使用 和 的组合删除法语find字符rename

用法语字符重命名文件和目录

现在我面临着一些\名称中带有 的文件和目录,以下命令未触及这些文件和目录:

find . -depth -execdir rename -n '
 utf8::decode$_ or die "cannot decode $_\n";
 s{[^\w.\@+,#!?:&%~()\[\]/\\ -]}{?}gs;
 utf8::encode$_;
 ' {} +

我尝试使用\\该名称作为目标,但这似乎是不正确的方式。我正在讨论的文件命名看起来像这样:

$ls
'Links '

$ls -1b
Links\ *WHITESPACE*

这些目录名称导致 PHP 代码崩溃。例如,当尝试将文件移动到具有该命名的目录中时。

如何增强给定命令以同时定位所描述的名称?

相关内容