Ich habe Lessn auf meinen Webserver heruntergeladen und entpackt.
Es enthält einen Ordner namens -
. Ich bin davon ausgegangen, dass ich weiß, wie ich damit umgehen soll, aber ich weiß es nicht.
Ich habe versucht cd -- -
, aber das bringt nicht den gewünschten Effekt. Die Verwendung von Anführungszeichen scheint dies ebenfalls nicht zu beeinflussen. Ich habe überall Schrägstriche gesetzt, ohne Erfolg.
Wie wechselt man richtig in diesen Ordner?
Akzeptierte Antwort:
Sie möchten vermeiden, dass es ein Parameter ist, also versuchen wir, ihm etwas voranzustellen. Auf das aktuelle Verzeichnis kann mit .
zugegriffen werden , also der Unterordner -
kann alternativ mit ./-
aufgerufen werden .
cd ./-
Der Grund dafür, dass cd -- -
nicht funktioniert, liegt daran, dass dies anders implementiert ist, wenn Sie rm
vergleichen (siehe man rm
) zu cd
(siehe man bash
oder man cd
), cd
hat eine andere Interpretation, die -
sieht als Parameter (siehe man bash
oder man cd
).
Zu beachten ist auch, dass cd
ist eine in die Shell eingebaute Funktion, wie in dieser Antwort zu lesen ist:
cd
ist kein externer Befehl – es ist eine in die Shell eingebaute Funktion. Es läuft im Kontext der aktuellen Shell und nicht, wie es externe Befehle tun, in einem Fork/Exec’d-Kontext als separater Prozess.
Dies erklärt, warum die Implementierung unterschiedlich ist, da Bash und Coreutils zwei verschiedene Dinge sind.
Nehmen wir einfach an, Sie würden das nicht glauben, wie können wir das bestätigen? Verwenden Sie which
und type
.
$ which cd && type cd
which: no cd in (/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.7.2:/usr/games/bin
cd is a shell builtin
$ which rm && type rm
/bin/rm
/bin/rm is /bin/rm