我尝试在网上寻找答案,
但搜索结果与我的查询不再匹配
如何按照正常预期将文件复制到 USB
行为就像几十年来一样,在这个过程之后
完成后,您可以立即移除 USB 驱动器
无需等待您之间的秘密幕后交易
操作系统和您的 USB 驱动器,以及您的文件...
答案1
您的问题涉及 USB 支持的文件系统的同步状态。
I/O 原语 ( open, read, write, close
) 不确保同步。
该sync
命令将确保,当然也是unmount
如此。
所以,典型的流程是:
cp /path/file1 /myusb/
sync -f /myusb
之后,您的数据将被同步。
答案2
你的问题很有趣:所以你公开承认几十年来你总是从机器中拔出 USB 设备而不确保正确的数据完整性?
即使在98年,当Windows 98的USB首次在Windows 98 SE中引入时,我记得删除USB大容量存储设备的唯一安全方法是从“系统托盘”或“我的电脑”中执行“设备弹出”命令。
你是想告诉我们,你总是在复制后立即拔出钥匙,而不是这样做,当你决定数据被写入?我什至不想知道这几十年来你默默地丢失或破坏了多少数据。你的无知令人难以置信。
如上所述,sync
确保文件数据到达那里是个好主意,但这umount
只是万无一失的,因为它确保设备上的 FS 实际上已正确冻结并准备好设备提取。
sync
不能确保驱逐所有可以驱逐的东西 umount
,就像主要的文件系统结构一样。
鉴于你喜欢走捷径,我建议你学习umount
才是适合你的方法。稍后再告诉我们。
PS.:只是一个友好的提示,无论是umount
或sync
,特别是在 FAT(32) 格式的驱动器上,对于大驱动器上的大文件(FAT32 上约为 2GB,〜4GB)甚至可能需要几分钟,所以不要惊慌 - 这是冲突的结果FAT 系统的性质和 Linux 的性质之间。