Мне всегда интересно: большинство инструментов GNU / Unix принимают параметры в форме «минус что-то», иногда с последующим аргументом. Что делать, если вы получили файл с именем минус что-то?
$ ls
-f
$ rm -f
$ ls
-f
$ mv -f abc
mv: missing destination file operand after `abc'
Try `mv --help' for more information.
$ cat -f
cat: invalid option -- 'f'
Try `cat --help' for more information.
или
$ ls
-ohello.c
$ gcc -ohello -ohello.c
gcc: fatal error: no input files
compilation terminated.
Это просто из любопытства; У меня нет варианта использования для этого.
Ответы:
Чтобы удалить файл с именем
-x
, используйтеrm -- -x
(--
означает конец параметров) илиrm ./-x
.источник
Этот тип вопроса часто задают в настройках интервью. Обычный способ обработки файлов с тире:
источник
Общий вопрос в Unix. Основной способ - дать полный путь к файлу, чтобы перед ним не было тире:
В некоторых командах вы можете использовать тире отдельно (или двойной тире), чтобы завершить опцию. Однако это не обязательно верно для всех команд или даже для одной и той же команды в разных системах.
источник
ты должен использовать
Пример:
источник