Cp

將帶有特殊字元的文件名複製到外部 ntfs 卷

  • March 31, 2020

我正在嘗試Documents and Settings使用 Puppy Linux 的 USB Live 將 Windows XP 系統的文件夾複製到 NTFS 外部磁碟。

我遇到了名稱文件的編碼問題,其中系統無法辨識意大利語特殊字元(utf-8 的一部分),因此使用cp或 GUI 文件管理器會帶來錯誤invalid or incomplete multibyte or wide character

如何將名稱中包含特殊字元的文件複製到 NTFS 驅動器?

您確定文件名在 NTFS 文件系統上有效嗎?

您是否要求文件名保持不變?

如果沒有,您可以刪除“奇怪”字元以使您的生活更輕鬆:

有一個工具可以做到這一點,detox.

您可以在不先更改文件名的情況下檢查將重命名的內容:

$ detox -n somedir/*

然後,實際做到這一點:

$ detox somedir/*

另一種方法是以清理(“清理”)文件名本身的方式安裝 NTFS 文件系統。

有一個安裝選項可以啟用此功能windows_names

來自man ntfs-3g

 windows_names
             This option prevents files, directories and extended  attributes
             to be created with a name not allowed by windows, either because
             it contains some not  allowed  character  (which  are  the  nine
             characters  "  * / : < > ? \ | and those whose code is less than
             0x20) or because the  last  character  is  a  space  or  a  dot.
             Existing such files can still be read (and renamed).

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