Cómo escapar de "-" en bash [duplicado]

14

Posible duplicado:
herramientas Unix: ¿y si un archivo se llama menos algo?

Por favor dime cómo escapar de esto:

[root @ unix ~] # ./-sh
-bash: ./-sh: permiso denegado
[root @ unix ~] # chmod + x -sh
chmod: modo no válido: `-sh '
Pruebe `chmod --help 'para obtener más información.
[root @ unix ~] #
soundhax
fuente
# chmod a + x "\\ - sh" chmod: no se puede acceder a `\\ - sh ': No
existe

Respuestas:

24

Uso --.

Por ej chmod +x -- -sh. En el lenguaje GNU, el --medio significa fin de las opciones, por -shlo que ya no se analiza como una opción.

[Editar] Ejemplo agregado:

escarabajo: / home / hennes / test> touch - -sh

escarabajo: / home / hennes / test> ls -l - -sh
-rw ------- 1 usuarios de hennes 0 2013-01-04 17:20 -sh

escarabajo: / home / hennes / test> chmod + x - -sh

escarabajo: / home / hennes / test> ls -l - -sh
-rwx ------ 1 usuarios de hennes 0 2013-01-04 17:20 -sh
Hennes
fuente
Curiosamente, esto no parece funcionar con GNU echo, aunque funciona con GNU printf. Esto funciona: printf -- -sh. Y esto no es así: echo -n -- -sh.
Lukas Pokorny