LINUX.ORG.RU

Символ "-" в начале имени файла

 ,


0

2

Как правильно с этим работать?

$ echo ololo > -111-
$ cat -111-
cat: неверный ключ — «1»
По команде «cat --help» можно получить дополнительную информацию.
$ cat "-111-"
cat: неверный ключ — «1»
По команде «cat --help» можно получить дополнительную информацию.
$ cat "\-111\-"
cat: '\-111\-': Нет такого файла или каталога
$ cat ./-111-
ololo
Помогает только если подставлять путь до файла.

Любой аргумент, включая имя файла, передаётся обычной строкой, ключи и флаги как раз, обычно, отличаются от файлов тем, что имеют - перед именем. Таким образом иногда можно ставить ключи после имён файлов. Некоторые программы понимают аргумент -- как окончание списка ключей и считают любой аргумент, идущий после — файлом.

$ cat -- -111- 
ololo
anonymous ()

Помогает только если подставлять путь до файла.

Ну так и подставляйте путь до файла. Имхо, вполне нормальный выход из положения.

QsUPt7S ()

cat -- -111-

К вашим услугам.

beastie ★★★★★ ()

правильно - не использовать sh/bash и им подобные, quoting hell у них семейное

anonymous ()
Ответ на: комментарий от anonymous

А при чём здесь sh/bash и quoting hell, когда ТС спрашивал про cat и имена файлов начинающихся с ‘-’?

QsUPt7S ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.