Как избежать «-» в bash [дубликаты]


14

Возможное дублирование:
инструменты Unix: что, если файл называется минус что-то?

Пожалуйста, скажите мне, как избежать этого:

[root @ unix ~] # ./-sh
-bash: ./-sh: В доступе отказано
[root @ unix ~] # chmod + x -sh
chmod: неверный режим: `-sh '
Попробуйте `chmod --help 'для получения дополнительной информации.
[root @ unix ~] #

# chmod a + x "\\ - sh" chmod: невозможно получить доступ к `\\ - sh ': нет такого файла или каталога
soundhax

Ответы:


24

Использование --.

Например chmod +x -- -sh. В языке GNU --означает конец параметров, поэтому -shбольше не анализируется как параметр.

[Изменить] Добавлен пример:

Жук: / дома / хны / тест> сенсорный - -ш

Жук: / home / hennes / test> ls -l - -sh
-rw ------- 1 пользователь hennes 0 2013-01-04 17:20 -sh

Жук: / home / hennes / test> chmod + x - -sh

Жук: / home / hennes / test> ls -l - -sh
-rwx ------ 1 hennes пользователей 0 2013-01-04 17:20 -sh

Интересно, что это, похоже, не работает с эхом GNU, хотя работает с GNU printf. Это работает: printf -- -sh. И это не так echo -n -- -sh.
Лукас Покорный
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.