#linux #файлы
У есть файл с именем :~/. Я не могу открыть этой файл cat ':~/'. Разные способы попробовал, но результата нет. Как его открыть? Кстати только sh работает, bash ограничено. В папке такие файлы: ~ $ ls #~o :'( :~# :~E =) XD $diary.txt :( :~& :~J =8) X~( (*v*) :) :~( :~P =D X~p (.V.) :* :~) :~Q =O ^_^ (~: :*) :~)(~: :~o =P |~O (~}{~) :> :~)* :~| =^.^= ~,~ )~: :P :~* :~∕ =~O ~:0 *<:o) :S :~> ;) >:) *~* :_( :~@ ;~) B~) -$ :o :~B <:3)~ O.o 8~) :o3 :~D =( O:~)
Ответы
Ответ 1
Символ / запрещён в имени в большинстве современных ОС, поэтому файл :~/ существовать не может в принципе. Вместо этого у вас существует файл :~∕ — в нём используется другая косая черта. Да, это две РАЗНЫЕ косые черты, несмотря на то, что в терминале они выглядят одинаково: / U+002F SOLIDUS — косая черта, которая в именах не бывает ∕ U+2215 DIVISION SLASH — это знак деления, который похож на косую черту Соответственно, если вместо косой черты использовать знак деления, то команда cat ':~∕' отлично работает.Ответ 2
копия моего ответа (с заменой «каталог» → «файл») на по сути аналогичный вопрос: запустите (предварительно установив, если не установлен, и есть такая возможность) какой-нибудь файловый менеджер: mc, lfm, vifm, ranger и т.п. если установлен vim (не vi!) и надо отредактировать какой-то файл, то можно им и воспользоваться как файловым менеджером: vim . — программа запустится в режиме netrw (по умолчанию этот скрипт, вроде бы, установлен в ubuntu), где можно будет «перейти» к любому файлу/каталогу. нажатие enter будет интерпретировано для каталога — как cd, для файла — открытие его для редактирования. если установлен emacs, можно воспользоваться его пакетом dired — directory editor. на самый крайний (зато абсолютно универсальный) случай можно воспользоваться конструкцией cat -- "$(...)", где вместо ... должна идти команда, возвращающая имя нужного файла (кавычки нужны для тех случаев, когда в названии файла есть пробелы, а -- — на случай, если имя файла начинается с дефиса). это может быть, например, команда ls | sed -n 2p, где 2 — номер нужного файла в выдаче ls. посмотреть пронумерованную выдачу ls можно, например, так: $ ls | nl 1 acpi 2 adduser.conf 3 adjtime 4 alternatives 5 anacrontab ... т.е., для просмотра файла adduser.conf надо выполнить: $ cat -- "$(ls | sed -n 2p)"Ответ 3
Кто-то весело поразвлекался :). Попробуйте использовать экранирование. Пишите символы через . Например (\~}{\~) вместо (~}{~) и т.п. Единственное - символ '/' - его не должно быть, это зарезервированный символ, либо используется похожий спецсимвол (там есть один) или же это вообще каталог, который записывается также как и /usr/
Комментариев нет:
Отправить комментарий