Come sfuggire a "-" in bash [duplicato]


14

Possibile duplicato:
strumenti Unix: cosa succede se un file viene chiamato meno qualcosa?

Per favore, dimmi come sfuggire a questo:

[root @ unix ~] # ./-sh
-bash: ./-sh: autorizzazione negata
[root @ unix ~] # chmod + x -sh
chmod: modalità non valida: `-sh '
Prova `chmod --help 'per maggiori informazioni.
[root @ unix ~] #

# chmod a + x "\\ - sh" chmod: impossibile accedere a `\\ - sh ': nessun file o directory
simile

Risposte:


24

Usa --.

Es chmod +x -- -sh. Nel linguaggio GNU --significa fine delle opzioni, quindi -shnon viene più analizzato come opzione.

[Modifica] Esempio aggiunto:

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

scarabeo: / home / hennes / test> ls -l - -sh
-rw ------- 1 utenti hennes 0 2013-01-04 17:20 -sh

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

scarabeo: / home / hennes / test> ls -l - -sh
-rwx ------ 1 utenti hennes 0 2013-01-04 17:20 -sh

È interessante notare che questo non sembra funzionare con l'eco GNU, sebbene funzioni con GNU printf. Questo funziona: printf -- -sh. E questo non lo fa: echo -n -- -sh.
Lukas Pokorny,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.