Linux

如何“cd”到非 utf8 目錄

  • April 5, 2013

如何將目錄更改為名稱包含非 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命令僅辨識有問題的目錄並對其執行重命名.

  1. ls -i在父目錄中使用以標識關聯的 inode。
  2. 執行find . -type d -inum inode#,根據需要替換 inode 號。如果此命令有效並且僅返回一個目錄(您要重命名的目錄),則將其附加到 find 命令的末尾: -okdir mv {} ILikeThisNameBetter \;

-okdir-execdir提示您是否真的想做某事的變體,在這種情況下這是正確的方法)

感謝 Aaron Bush 的 inode 方法,我在之前的版本中是根據文件大小來做的。

引用自:https://serverfault.com/questions/496297