web-dev-qa-db-fra.com

Quelle commande dans le shell Linux/UNIX sh mon répertoire actuel?

En utilisant le shell sh (pas bash), quelle commande sous Linux/UNIX imprime mon répertoire actuel?

$ *showmewhereiam*
/sys/kernel/debug
$
37
Hieu Nguyen

Essayez pwd.

$ pwd
/home/<username>
60
loudandclear

Alors que la réponse générale est pwd, notez que cela peut donner des résultats différents selon la manière dont vous avez atteint un annuaire donné et si la route inclut des liens symboliques.

Par exemple, si vous avez un répertoire appelé real et un lien symbolique vers ce répertoire appelé virtual et que vous cd dans le répertoire virtual, alors pwd montrera que virtual nom de répertoire, même si le répertoire dans lequel vous vous trouvez est real.

Pour afficher le répertoire sous-jacent réel, utilisez pwd -P ou readlink -f (pour un chemin arbitraire):

$ mkdir real 
 $ ln -s real virtuel 
 $ cd virtual 
 $ pwd 
/home /username/tmp/virtual
$ pwd -P 
/home /username/tmp/real
$ readlink -f. 
/home /username/ tmp/real

Notez que les shells remplacent souvent la commande pwd par leur propre version interne, donc sur mon système (RHEL6), même si la page de manuel pwd(1) suggère que --physical fonctionnera aussi bien que -P, car j’exécute bash, elle ne le fait pas:

$ pwd --physical 
 bash: pwd: -: option non valide 
 pwd: utilisation: pwd [-LP] 
 $/bin/pwd --physical 
/maison/username/tmp/real
$/usr/bin/env pwd --physical 
/home /username/ tmp/real
11
Mark Booth
$ pwd
/your/current/directory
$

pwd provient du répertoire de travail print .

De la page de manuel Linux:

Prénom

pwd - Affiche le nom du répertoire/répertoire de travail

Synopsis

pwd [OPTION] ...

La description

Affiche le nom de fichier complet du répertoire de travail en cours.

-L , --logical

utiliser PWD de l'environnement, même s'il contient des liens symboliques

-P , --physical

éviter tous les liens symboliques

--help

affiche cette aide et quitte

--version

affiche les informations de version et quitte

REMARQUE: votre shell peut avoir sa propre version de pwd, qui remplace généralement la version décrite ici. Veuillez vous reporter à la documentation de votre shell pour plus de détails sur les options qu'il prend en charge.

(...)

1
simhumileco

Comme d'autres l'ont dit, pwd fait généralement assez bien le travail. Cependant, j'aimerais ajouter une idée qui m'a aidé.

Sur tous les shells couramment utilisés aujourd'hui, vous pouvez personnaliser l'apparence de l'invite de commande. J'aime personnaliser le mien pour qu'il me montre à la fois le nom de l'ordinateur sur lequel je suis et mon répertoire de travail. De cette façon, je sais toujours où je suis. (La partie relative au nom de l'ordinateur m'aide à déterminer si la fenêtre de terminal que j'utilise a été utilisée pour SSH sur un serveur distant.) Par exemple, lorsque j'ouvre une nouvelle fenêtre de terminal sur mon ordinateur portable, que j'appelle Plastico, je vois ceci:

Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr> 

Vous pouvez voir que cela abrége mon répertoire personnel en ~. Je trouve que faire cela pour mes invites de terminal est incroyablement pratique - je sais toujours d'un coup d'œil où je suis exactement, encore plus que si je regardais dans une fenêtre du Finder.

Sur tcsh, je le fais en ajoutant set Prompt = 'Plastico %~%# ' à mon fichier .tcshrc dans mon répertoire personnel. Je l'ai aussi fait sur ksh en ajoutant export PS1="Plastico $PWD $ " à mon fichier .profile. Mais étant un utilisateur de Linux, vous utilisez probablement Bash, pour lequel je n’ai pas beaucoup d’expérience (je suis un cinglé comme ça). Mais il semble que je pourrais peut-être le faire en ajoutant PS1="Plastico \w $ " à mon fichier .bashrc.

Edit: Je viens de remarquer que l'OP indique que vous êtes intéressé par sh, pas bash. Tant pis; espérons que les gens trouveront cela utile malgré tout.

1
Garrett Albright