Cp

複製到外部設備會弄亂 NixOS 中的特殊字元

  • December 17, 2020

我有一個 DAP(如 mp3 播放器),我正在嘗試將我電腦上的一個文件夾的內容同步到 DAP。這確實幾乎按預期工作,但文件名發生了一些奇怪的事情。我正在與 rsync 同步,但是它也使用簡單的 cp 'DR Pigekor - I østen stiger solen op.mp3' /mounted/device.

在另一台設備上,它顯示為'DR Pigekor - I østen stiger solen op.mp3'。我還檢查了我的另一台執行 manjaro 的電腦,它顯示了相同的奇怪標題,或者非常相似的東西,所以它不僅僅是 DAP。所有文件在我從中複製它們的 nixOS 機器上看起來都很好,無論是在已安裝的驅動器上還是在原始位置上。還應注意,將文件從 manjaro 機器複製到 DAP 工作正常。

en_US.UTF-8順便說一句,我的系統語言環境在兩台機器上都應該是。

複製時如何保留文件名?

我錯了文件格式。我執行了這個命令# fsck -N /dev/mmcblk0p1來檢查格式,它輸出了這個:

[/run/current-system/sw/bin/fsck.ext2 (1) -- /dev/mmcblk0p1] fsck.ext2 /dev/mmcblk0p1

後來我發現這不是真的,實際的文件系統是赫爾曼建議的 vfat。使用此命令安裝解決了問題:

# mount -t vfat /dev/mmcblk0p1 /path/to/mnt -o shortname=mixed -o utf8

“shortname=mixed”保留大小寫,否則 vfat 會將任何 8 個字元或更少的文件名轉換為小寫(預設行為是“shortname=lowercase”)並導致 rsync 出現問題。UTF8 是 Windows 在掛載文件系統時使用的,因此我們指定它以確保我們以相同的方式掛載它(預設是掛載 iso-8859-1,即使底層 vfat 文件系統將以 UTF8 格式儲存文件名)。

我在這個網站上找到了命令: https ://www.clug.org/rsync-to-fat32-drives/

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