GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie betrete ich ein Verzeichnis, dessen Name nur ein Minus ist?

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


Linux
  1. Wie kann man sicherstellen, dass nur eine Instanz eines Bash-Skripts ausgeführt wird?

  2. Wie man ein Verzeichnis unter Linux gzippt

  3. Wie benenne ich einen Thread in Linux?

  4. Wie unterscheiden Sie ein Verzeichnis nur für Dateien eines bestimmten Typs?

  5. So durchsuchen Sie nur das aktuelle Verzeichnis in Nautilus (altes Verhalten wiederherstellen)

So installieren Sie Jenkins auf Kubernetes

So entfernen Sie ein Verzeichnis in Linux

So kopieren Sie das Verzeichnis unter Linux

So installieren Sie Metasploit auf Ubuntu

Wie kann ich einen rekursiven chmod nur für Verzeichnisse ausführen?

lsof - Ausgabe nur auf physische Dateien beschränken - wie?