44 votes

Quelle commande dans l'interpréteur de commandes sh Linux/UNIX renvoie mon répertoire actuel?

En utilisant l'sh shell (pas bash), quelle commande dans Linux/UNIX affiche mon répertoire actuel?

$ *showmewhereiam*
/sys/kernel/debug
$

70voto

loudandclear Points 997

Essayer pwd.

$ pwd
/home/

13voto

Mark Booth Points 2689

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 répertoire donné, et si le chemin incluait 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 vers le répertoire virtual, alors pwd affichera le nom de ce répertoire virtual, même si le répertoire réel dans lequel vous vous trouvez est real.

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

$ 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

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 de pwd(1) suggère que --physical fonctionnera aussi bien que -P, car j'utilise bash, cela ne fonctionne pas :

$ pwd --physical
bash: pwd: --: option invalide
pwd: usage: pwd \[-LP\]
$ /bin/pwd --physical
/home/_username_/tmp/real
$ /usr/bin/env pwd --physical
/home/_username_/tmp/real

1voto

Adam Malter Points 96

Comme d'autres l'ont dit, pwd fait généralement assez bien l'affaire. 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 la mienne pour qu'elle me montre à la fois le nom de l'ordinateur sur lequel je me trouve et mon répertoire de travail. Ainsi, je sais toujours où je suis. (La partie nom de l'ordinateur m'aide à réaliser si la fenêtre de terminal que j'utilise a été utilisée pour me connecter en SSH à 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 Bureau/
Plastico ~/Bureau> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr> 

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

Sous 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, avec lequel je n'ai pas beaucoup d'expérience (je suis bizarre comme ça). Mais il semble que je pourrais le faire en ajoutant PS1="Plastico \w $ " à mon fichier .bashrc.

Édition : Je viens de remarquer que l'intervenant principal indique que vous êtes intéressé par sh, et non bash. Tant pis ; j'espère que cela sera utile quand même.

1voto

simhumileco Points 627
$ pwd
/your/current/directory
$

pwd vient de print working directory.

À partir de la page de manuel Linux :

Nom

pwd - afficher le nom du répertoire courant

Synopsis

pwd [OPTION]...

Description

Affiche le nom complet du répertoire de travail actuel.

-L, --logique

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

-P, --physique

éviter tous les liens symboliques

--aide

afficher cette aide et quitter

--version

afficher les informations de version et quitter

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

(...)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X