Linux
如何“cd”到非 utf8 目錄
如何將目錄更改為名稱包含非 ASCII 預設字元的目錄?
root@senior:/media/data/hudba/# ls . -l total 3096 -rwxr-xr-x 2 user users 3160192 Jul 31 2006 Lucie BĂlĂĄ - esemes.mp3 drwxr-xr-x 1 user users 8192 Mar 28 2008 ĂplnÄahĂĄ
如何進入該目錄(第二個條目)?或者(更好)重命名它而不使用 mc 或其他工具或不必重新安裝分區?
確保它真的不是 UTF-8。
echo $LANG
; 如果返回的字元串沒有以 結尾.UTF-8
,則您的終端未設置為正確的編碼。盡可能使用製表符或萬用字元補全。
如果第一個或三個字元是 ASCII,請嘗試使用製表符完成來為您完成這項工作。遠端伺服器將提供原始字節,此時您可以點擊返回,即使它看起來沒有意義。
顯然,製表符補全不適用於這種情況,但正如大衛指出的那樣,您可以使用
cd
基於子字元串的萬用字元。使用抽象。
如果您無法傳輸正確的字元程式碼,甚至不是第一個字元,您幾乎必須使用其他工具來為您解決問題,例如誘使
find
命令僅辨識有問題的目錄並對其執行重命名.
ls -i
在父目錄中使用以標識關聯的 inode。- 執行
find . -type d -inum inode#
,根據需要替換 inode 號。如果此命令有效並且僅返回一個目錄(您要重命名的目錄),則將其附加到 find 命令的末尾:-okdir mv {} ILikeThisNameBetter \;
(
-okdir
是-execdir
提示您是否真的想做某事的變體,在這種情況下這是正確的方法)感謝 Aaron Bush 的 inode 方法,我在之前的版本中是根據文件大小來做的。