我有一台通过 SMB 共享文件的服务器。服务器使用 Ext4 来存储文件。
今天我尝试将以下文件从服务器复制到 Mac OS:
1-10 Bizet_ Carmen - Habañera.wav
第一次复制时我看不到文件本身。第二次我复制到同一个位置时出现错误代码 -8058。经过一番挖掘,我发现出于某种原因,这个特定文件以以下方式作为链接复制:
file-//localhost/Volumes/torrents-tmp/downloads/1-10%20Bizet_%20Carmen%20-%20Haban%CC%83era.wav.webloc
在 100 个文件中,大约 10% 的文件出现同样的问题。我甚至无法从 Mac OS 重命名它。如果我从服务器重命名ñ
,n
那么我可以复制它。
此类文件的另一个示例是:
10 Celebración.wav
因此看起来重音符号会让 Mac OS 感到困惑,但我认为它们是 Unicode 的一部分。
作为能够复制的解决方案,我如何自动批量重命名所有无效文件?
答案1
在服务器上运行此命令来重命名文件。它将用其对应的 ascii 字符替换所有非 ascii 字符:
find . -type f |
perl -nCAS -MText::Unidecode -e 'chomp; rename "$_", unidecode("$_");'