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 ~] #

# 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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.