File-Copy

將文件同步到 VFAT 分區的最佳方法是什麼?

  • January 12, 2014

POSIX 文件名可能包含除 之外的所有字元/,但某些文件系統保留字元,例如?<>\\:*|". 使用pax,我可以在替換這些保留字元的同時復製文件:

$ pax -rw -s '/[?<>\\:*|\"]/_/gp' /source /target

但是pax缺少--delete類似的選項rsync並且rsync不能替換字元。我正在尋找一種簡單的方法來定期將我的音樂收藏備份到外部硬碟驅動器。

您可以使用 POSIX 語義來查看 FAT 文件系統,包括支持具有除/空字節以外的任何字元的文件名。POSIXovl是一個相對較新的FUSE文件系統。

mkdir backup-fat
mount.posixovl -S /media/sdb1 backup-fat
rsync -au /source backup-fat/target

VFAT 不接受的文件名中的字元被編碼為%(XX)十六XX進制數字。從 POSIXovl 1.2.20120215 開始,請注意文件名 like%(3A)被編碼為自身,並將被解碼為:,因此如果您的文件名包含表單的子字元串,則存在衝突的風險%(XX)

請注意,POSIXovl 無法處理過長的文件名。如果編碼名稱不適合 255 個字元,則無法儲存該文件。

POSIXovl 將 unix 權限和所有權儲存在名為.pxovl.FILENAME.

引用自:https://unix.stackexchange.com/questions/108890