Назад | Перейти на главную страницу

Как выполнить «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, попробуйте использовать завершение табуляции, чтобы выполнить эту работу за вас. Удаленный сервер предоставит необработанные байты, после чего вы можете просто нажать return, даже если это не похоже на то, что имеет смысл.

Очевидно, что завершение табуляции в этом случае не применяется, но, как указал Дэвид, вы можете использовать подстановочный знак cd на основе подстроки.

Используйте абстракцию.
Если вы не можете передать правильные коды символов, даже первый символ, вы в значительной степени иметь использовать другие инструменты для решения проблемы, например, уговорить find , чтобы определить только интересующий каталог и переименовать его.

  1. Использовать ls -i в родительском каталоге, чтобы идентифицировать связанный индексный дескриптор.
  2. Выполнить find . -type d -inum inode#, заменяя номер inode соответствующим образом. Если эта команда работает и возвращает только один каталог (тот, который вы хотите переименовать), добавьте это в конец команды поиска: -okdir mv {} ILikeThisNameBetter \;

(-okdir это вариант -execdir который подсказывает, действительно ли вы хотите что-то сделать, что в данном случае является правильным путем)

Благодарим Аарона Буша за подход inode, я делал это по размеру файла в предыдущей версии.

Двойные кавычки для имени каталога должны работать нормально.

 cd "ĂplnÄahĂĄ" 

даже для имен с пробелами

 cd "ĂplnÄahĂĄ hfjksf"