Wie man "-" in Bash entkommt [Duplikat]

14

Mögliches Duplizieren:
Unix-Tools: Was ist, wenn eine Datei minus etwas heißt?

Bitte sagen Sie mir, wie ich dem entkommen kann:

[root @ unix ~] # ./-sh
-bash: ./-sh: Berechtigung verweigert
[root @ unix ~] # chmod + x -sh
chmod: ungültiger Modus: `-sh '
Versuchen Sie "chmod --help" für weitere Informationen.
[root @ unix ~] #
Soundhax
quelle
# chmod a + x "\\ - sh" chmod: kann nicht auf `\\ - sh 'zugreifen: Keine solche Datei oder kein solches Verzeichnis
soundhax

Antworten:

24

Verwenden Sie --.

ZB chmod +x -- -sh. In der GNU-Sprache --bedeutet das Ende von Optionen, wird also -shnicht mehr als Option analysiert.

[Bearbeiten] Beispiel hinzugefügt:

Käfer: / home / hennes / test> touch - -sh

Käfer: / home / hennes / test> ls -l - -sh
-rw ------- 1 hennes users 0 2013-01-04 17:20 -sh

Käfer: / home / hennes / test> chmod + x - -sh

Käfer: / home / hennes / test> ls -l - -sh
-rwx ------ 1 hennes users 0 2013-01-04 17:20 -sh
Hennes
quelle
Interessanterweise scheint dies mit GNU-Echo nicht zu funktionieren, obwohl es mit GNU printf funktioniert. Das funktioniert : printf -- -sh. Und das nicht : echo -n -- -sh.
Lukas Pokorny