LINUX.ORG.RU
ФорумTalks

Файлы начинающиеся на -


0

1
$ echo > -1
$ cat -1 
cat: invalid option -- '1'
Try `cat --help' for more information.
$ cat "-1" 
cat: invalid option -- '1'
Try `cat --help' for more information.
$ rm ./-1
$

Не будет ли из-за такой гадости у чего нибудь проблем?

★★★★★

нужно использовать символ конца опций --
т.е.
$ cat — -1
и т.д.

n_play ()

Разве что у пользователя, который использует shell, но ещё не знает про то, что можно использовать полные пути и не знает, что гнутые утилиты используют правило, что после опции "--" опций больше не будет. То есть «cat — -1» будет работать как ожидается

kim-roader ★★ ()

А почему, не пишите на баш и ко шеллах ничего сложного. Жаль, что весь этот бардак из загрузочных скриптов не выбросят.

Deleted ()
Ответ на: комментарий от kim-roader

Работат и с ./-1
Интересно все ли программы эту точку или — (оно ведь еще и не для всего работает?) там ставят?

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

Я думаю, что очень мало программ вызывают cat вместо прямой работы с файлами.

Yareg ★★★ ()
Ответ на: комментарий от Tanger

При чём тут программы? Когда ты запускаешь приложение через shell, то этот самый shell интерпретирует строки: строку в одинарных кавычках представляет как один аргумент, в двойных сначала выполняет требуемые инструкции («`command` $ENVIRONMENT_VARIABLE»), а потом результат представляет как один аргумент, даёт возможность экранировать часть символов. После чего shell, с учётом кавычек и экранированных символо,в разбивает строку на набор подстрок и передаёт их функции execve. После чего запущенная программа вольна поступать с полученными строками как угодно.

Так с точки зрения ls ничем не отличаются варианты команд прописанные в bash:

ls --help
ls "--help"
"ls" --help
ls \-\-help
\l\s '--help'

А программы работают с файлами через вызов какого-нибудь fopen. fopen трактует переданную строку только как файловый путь и никак иначе.

kim-roader ★★ ()
Ответ на: комментарий от kim-roader

Я имел ввиду скрипты на баше/sh.
и другое, что может что-то экзекать.

Tanger ★★★★★ ()
Ответ на: комментарий от Yareg

так тоже: cat $PWD/-1
хотя по сути те же яйца :)

Rost ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.