#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/
Комментариев нет:
Отправить комментарий