如何复制带有“?”等字符的文件和 ':' 从只读驱动器到 ntfs?

如何复制带有“?”等字符的文件和 ':' 从只读驱动器到 ntfs?

我有一个从 mac (hfs+) 恢复的文件驱动器,我正在尝试将其复制到 ntfs 卷,以便可以从 Windows 计算机访问它们。不幸的是,有相当多的文件包含无法复制的字符。

这是一个非常相似的问题这个,但我尝试使用 windows_names 选项安装 ntfs 卷,并使用 rsync 和 iconv 选项(以不同的顺序使用 utf-8 和 utf-8-mac,或使用“.”),但都没有成功。据我了解,我也无法使用排毒选项,因为我无法使用原始文件写入驱动器(日志式 hfs+ 只能在 Linux 上以只读方式安装)。

我使用的是 Ubuntu 19.04,到目前为止我已经尝试从 GUI 和 rsync 进行复制。

如果有帮助,使用“windows_names”选项安装 ntfs 驱动器,我使用

sudo rsync --append-verify -r <source> <dest>

并得到

rsync: open "/location/Reunion??.rtf" failed: Invalid argument (22)

来自包含无效字符的文件。

我可以通过某种方式通过排毒管道传输文件,以便它们不会写入原始驱动器或不接受无效字符的目的地吗?我必须手动更改所有文件吗?也许有正则表达式脚本选项吗?

答案1

不太理想,但我通过使用 ext4 驱动器作为中间位置解决了这个问题。我将文件从 hfs+ 驱动器复制到 ext4,然后使用 detox,然后再次将文件复制到 ntfs 驱动器。

答案2

一个相关的问题使用自定义 bash 脚本解决了这个问题,该脚本基本上迭代文件并将它们即时重命名到目标驱动器,将冒号:和问号更改?为下划线_将带有特殊字符的文件同步到 USB FAT32

您只需在 shell 脚本中重命名源/目标目录即可。

相关内容