Welcher Befehl in der Linux/UNIX sh Shell gibt mein aktuelles Verzeichnis zurück?

Welcher Befehl in Linux/UNIX druckt mit der Shell sh (nicht bash) mein aktuelles Verzeichnis aus?

$ *showmewhereiam*
/sys/kernel/debug
$
 42
Author: HopelessN00b, 2011-06-21

4 answers

Versuche pwd.

$ pwd
/home/<username>
 67
Author: loudandclear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-06-21 10:32:09

Während die allgemeine Antwort pwd ist, beachten Sie, dass dies je nachdem, wie Sie ein bestimmtes Verzeichnis erreicht haben und ob die Route symbolische Links enthält, unterschiedliche Ergebnisse liefern kann.

Wenn Sie beispielsweise ein Verzeichnis mit dem Namen real und einen symbolischen Link zu diesem Verzeichnis mit dem Namen virtual und cd zum Verzeichnis virtual haben, dann zeigt pwd diesen Verzeichnisnamen an, obwohl sich das tatsächliche Verzeichnis in dem Sie befinden real.

Um das eigentliche zugrunde 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 häufig den Befehl pwd durch ihre eigene interne Version ersetzen, also auf meinem System (RHEL6), obwohl die pwd(1) - Handbuchseite vorschlägt, dass --physical genauso gut funktioniert wie -P, weil ich bash ausführe, nicht:

$ 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
 13
Author: Mark Booth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-08-17 13:54:15

Wie andere sagten, macht pwd normalerweise die Arbeit gut genug. Ich möchte jedoch eine Idee hinzufügen, die mir geholfen hat.

Auf allen heute gebräuchlichen Shells können Sie das Erscheinungsbild der Eingabeaufforderung anpassen. Ich möchte meine so anpassen, dass sie mir sowohl den Namen des Computers, auf dem ich mich befinde, als auch mein Arbeitsverzeichnis anzeigt. So weiß ich immer, wo ich bin. (Der Computernamenteil hilft mir zu erkennen, ob das von mir verwendete Terminalfenster zum SSH auf einem Remote-Server verwendet wurde.) Für wenn ich beispielsweise 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 mein Home-Verzeichnis als ~ abgekürzt wird. Ich finde es unglaublich praktisch, dies für mein Terminal zu tun - ich weiß immer auf einen Blick genau, wo ich bin, noch mehr als durch einen Blick in ein Finder-Fenster.

Auf tcsh mache ich dies, indem ich set prompt = 'Plastico %~%# ' zu my hinzufüge .tcshrc Datei in meinem home-Verzeichnis. Ich habe es auch auf ksh gemacht, indem ich export PS1="Plastico $PWD $ " zu meinem hinzugefügt habe .Profildatei. Aber sein als Linux-Benutzer verwenden Sie wahrscheinlich Bash, mit dem ich nicht viel Erfahrung habe (ich bin so ein Verrückter). Aber es sieht aus wie Ich könnte es tun, indem ich PS1="Plastico \w $ " zu meinem hinzufüge .bashrc-Datei.

Edit: Gerade bemerkt, dass das OP besagt, dass Sie an sh interessiert sind, nicht bash. Na ja; Hoffe, die Leute finden das trotzdem nützlich.

 1
Author: Garrett Albright,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-06-22 03:44:20
$ pwd
/your/current/directory
$

pwd kommt aus dem Arbeitsverzeichnis print .

Von Linux Manpage:

Namen

Pwd - Druckname des aktuellen / Arbeitsverzeichnisses

Übersicht

Pwd [OPTION]...

Beschreibung

Gibt den vollständigen Dateinamen des aktuellen Arbeitsverzeichnisses aus.

-L, --logisch

Verwenden Sie PWD aus der Umgebung, auch wenn es Symlinks enthält

-P, - physikalische

Vermeide alle Symlinks

--Hilfe

Zeige diese Hilfe an und beende

--version

Versionsinformationen ausgeben und beenden

HINWEIS: Ihre Shell hat möglicherweise eine eigene Version von pwd, die normalerweise die hier beschriebene Version ersetzt. Einzelheiten zu den unterstützten Optionen finden Sie in der Dokumentation Ihrer Shell.

(...)

 1
Author: simhumileco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-12 13:48:39