Debian
以十六進制查看文件名?
我有一些帶有特殊字元的文件,例如重音字母。
它們是有效的名稱,但由於某種原因,當它們通過網路複製到驅動器時,可能是另一種格式,名稱看起來仍然相同,但並不相同。
我可以將文件複製回來,現在我有兩個文件在完全相同的路徑中似乎具有完全相同的名稱。
我的猜測是有兩個不同的值表示重音字母,因此它們看起來相同。有沒有辦法查看名稱本身的十六進制,而不是文件?
這很重要,因為我的一個同步應用程序變得混亂並創建了重複項。
將文件名通過管道傳輸到
od
或類似的工具:printf '%s\n' * | od -t x1 -a
$ ls Accentué bar foo $ printf '%s\n' * | od -t x1 -a 0000000 41 63 63 65 6e 74 75 c3 a9 0a 62 61 72 0a 66 6f A c c e n t u C ) nl b a r nl f o 0000020 6f 0a o nl 0000022
許多字元可以有不同的表示,即使在相同的編碼中;例如,在UTF-8中,0xC3 0xA9代表é,0x65 0xCC 0x81代表e後跟“組合重音”,也顯示為é。這樣的字元串如果要進行比較就需要進行規範化,但即使是規範化也有不同的變體,不同的作業系統可以以不同的方式儲存相同的字元串。