最近我在 Linux 上使用文件管理器,尝试重命名具有相同字符但大小写不同的文件。
文件管理器报告该文件已存在(这在不区分大小写的文件系统上有意义)。
有什么便携式方法可以检查文件是否可以重命名,而不会意外地与其自身匹配?
更新,我在 Linux 上找不到支持此功能的文件管理器(在 vfat 上),因此这可能不受支持(至少没有令人讨厌的黑客攻击)。
甚至
mv nAme NaME
报告mv: 'nAme' and 'NaME' are the same file
。
请参阅有关该主题的详细讨论。
如果您愿意执行临时重命名步骤,那么通过使用 perl-rename 实用程序,您可以执行直接逆字符映射,其中您将大写字母字符移动一个位置,然后将它们移回,但要改为小写:
prename 'y/A-Z/B-ZA/' -- *
prename 'y/B-ZA/a-z/' -- *
注意:出于安全原因,如果 glob 扩展为以
-
开头的文件名,可选参数的结尾将使用 --
显式声明,否则某些文件名可能会被错误地视为可选参数。