Welcher Befehl in der Linux/UNIX-Shell sh gibt mein aktuelles Verzeichnis zurück?
Welcher Befehl in Linux/UNIX gibt bei Verwendung der Shell sh
(nicht bash
) mein aktuelles Verzeichnis aus?
$ *showmewhereiam*
/sys/kernel/debug
$
Welcher Befehl in Linux/UNIX gibt bei Verwendung der Shell sh
(nicht bash
) mein aktuelles Verzeichnis aus?
$ *showmewhereiam*
/sys/kernel/debug
$
Versuchen Sie pwd
.
$ pwd
/home/<username>
Die allgemeine Antwort ist pwd
, aber beachten Sie, dass dies unterschiedliche Ergebnisse liefern kann, je nachdem, wie Sie ein bestimmtes Verzeichnis erreicht haben und ob die Route symbolische Links enthält.
Wenn Sie beispielsweise ein Verzeichnis mit dem Namen real
und einen symbolischen Link zu diesem Verzeichnis mit dem Namen virtual
haben und mit cd
in das Verzeichnis virtual
wechseln, zeigt pwd
den Namen des Verzeichnisses virtual
an, auch wenn das tatsächliche Verzeichnis, in dem Sie sich befinden, real
ist.
Um das tatsächliche darunter liegende Verzeichnis anzuzeigen, verwenden Sie entweder pwd -P
oder readlink -f
(für einen beliebigen Pfad):
$ mkdir real $ ln -s real virtual $ cd virtual $ pwd /home/_username_/tmp/virtual $ pwd -P /home/_username_/tmp/real $ readlink -f . /home/_username_/tmp/real
Beachten Sie, dass Shells den Befehl pwd
oft durch ihre eigene interne Version ersetzen, so dass auf meinem System (RHEL6), obwohl die pwd(1)
-Handbuchseite nahelegt, dass --physical
genauso gut funktioniert wie -P
, weil ich bash
verwende, dies nicht der Fall ist:
$ pwd --physical bash: pwd: --: invalid option pwd: usage: pwd [-LP] $ /bin/pwd --physical /home/_username_/tmp/real $ /usr/bin/env pwd --physical /home/_username_/tmp/real
$ pwd
/your/current/directory
$
pwd
kommt aus dem Arbeitsverzeichnis drucken.
Name
pwd - Name des aktuellen/Arbeitsverzeichnisses drucken
Synopse
pwd [OPTION]…
Beschreibung
Druckt den vollständigen Dateinamen des aktuellen Arbeitsverzeichnisses.
-L , –logisch
PWD aus Umgebung verwenden, auch wenn es Symlinks enthält
-P , –physikalisch
alle Symlinks vermeiden
–help diese Hilfe anzeigen und beenden
–version
Versionsinformationen ausgeben und beenden
HINWEIS: Ihre Shell hat möglicherweise eine eigene Version von pwd, die in der Regel die hier beschriebene Version übertrifft. Bitte lesen Sie in der Dokumentation Ihrer Shell nach, welche Optionen sie unterstützt.
(…)
Wie andere schon sagten, erledigt pwd
die Aufgabe normalerweise gut genug. Ich möchte jedoch eine Idee hinzufügen, die mir geholfen hat.
Auf allen heute gebräuchlichen Shells können Sie das Aussehen der Eingabeaufforderung anpassen. Ich passe meine gerne so an, dass sie mir sowohl den Namen des Computers, auf dem ich mich befinde, als auch mein Arbeitsverzeichnis anzeigt. Auf diese Weise weiß ich immer, wo ich bin. (Der Teil mit dem Computernamen hilft mir zu erkennen, ob das Terminalfenster, das ich verwende, für SSH mit einem entfernten Server verwendet wurde.) Wenn ich zum Beispiel ein neues Terminalfenster auf meinem Laptop öffne, das ich Plastico nenne, sehe ich folgendes:
Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr>
Sie können sehen, dass es mein Home-Verzeichnis als ~
abkürzt. Ich finde es unglaublich praktisch, dies für meine Terminal-Eingabeaufforderungen zu tun - ich weiß immer auf einen Blick genau, wo ich bin, sogar mehr, als wenn ich in ein Finder-Fenster schauen würde.
Bei tcsh mache ich das, indem ich set prompt = 'Plastico %~%# '
zu meiner .tcshrc-Datei in meinem Heimatverzeichnis hinzufüge. Ich habe es auch bei ksh gemacht, indem ich export PS1="Plastico $PWD $ "
zu meiner .profile-Datei hinzufügte. Aber da Sie ein Linux-Benutzer sind, benutzen Sie wahrscheinlich die Bash, mit der ich nicht viel Erfahrung habe (ich bin so ein komischer Kauz). Aber es sieht so aus Ich könnte es schaffen, indem ich PS1="Plastico \w $ "
zu meiner .bashrc-Datei hinzufüge.
Edit: Ich habe gerade bemerkt, dass der OP sagt, dass Sie an sh interessiert sind, nicht an bash. Nun gut; ich hoffe, die Leute finden das trotzdem nützlich.