Jak uciec „-” w bash [duplikat]

14

Możliwa duplikat:
narzędzia uniksowe: co jeśli nazwa pliku jest pomniejszona o coś?

Powiedz mi, jak uciec od tego:

[root @ unix ~] # ./-sh
-bash: ./-sh: Odmowa uprawnień
[root @ unix ~] # chmod + x -sh
chmod: nieprawidłowy tryb: `-sh '
Spróbuj `chmod --help ', aby uzyskać więcej informacji.
[root @ unix ~] #
soundhax
źródło
# chmod a + x "\\ - sh" chmod: nie można uzyskać dostępu do `\\ - sh ': nie ma takiego pliku ani katalogu
soundhax

Odpowiedzi:

24

Zastosowanie --.

Np chmod +x -- -sh. W języku GNU --oznacza koniec opcji, więc -shnie jest już analizowany jako opcja.

[Edytuj] Dodano przykład:

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

beetle: / home / hennes / test> ls -l - -sh
-rw ------- 1 użytkownik Hennes 0 2013-01-04 17:20 -sh

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

beetle: / home / hennes / test> ls -l - -sh
-rwx ------ 1 użytkownik Hennes 0 2013-01-04 17:20 -sh
Hennes
źródło
Co ciekawe, wydaje się, że nie działa to z GNU echo, chociaż działa z GNU printf. Działa to: printf -- -sh. I to nie: echo -n -- -sh.
Lukas Pokorny