En utilisant l'sh
shell (pas bash
), quelle commande dans Linux/UNIX affiche mon répertoire actuel?
$ *showmewhereiam*
/sys/kernel/debug
$
En utilisant l'sh
shell (pas bash
), quelle commande dans Linux/UNIX affiche mon répertoire actuel?
$ *showmewhereiam*
/sys/kernel/debug
$
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
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.
$ pwd
/your/current/directory
$
pwd
vient de print working directory.
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.
(...)
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.