Quelle commande du shell sh Linux/UNIX renvoie mon répertoire actuel ?
En utilisant le shell sh
(et non bash
), quelle commande sous Linux/UNIX permet d'imprimer mon répertoire actuel ?
$ *showmewhereiam*
/sys/kernel/debug
$
En utilisant le shell sh
(et non bash
), quelle commande sous Linux/UNIX permet d'imprimer mon répertoire actuel ?
$ *showmewhereiam*
/sys/kernel/debug
$
Essayez pwd
.
$ pwd
/home/<username>
Bien que la réponse générale soit pwd
, notez que cela peut donner des résultats différents selon la façon dont vous avez atteint un répertoire donné, et si l'itinéraire comprenait 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 ce nom de répertoire virtual
, même si le répertoire dans lequel vous vous trouvez est real
.
Pour afficher le vrai répertoire sous-jacent, utilisez soit pwd -P
soit 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
, parce que je lance bash
, ce n'est pas le cas :
$ 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
provient du répertoire de travail d'impression.
Nom
pwd - imprimer le nom du répertoire courant / de travail
Synopsis
pwd [OPTION]…
Description
Imprimer le nom de fichier complet du répertoire de travail actuel.
-L , –logique
utiliser PWD depuis l'environnement, même s'il contient des liens symboliques
-P , –physique
éviter tous les liens symboliques
–aide
afficher cette aide et quitter
–version
sortir les informations sur la version et quitter
NOTE : 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 prend en charge.
(…)
Comme d'autres l'ont dit, pwd
fait généralement le travail assez bien. 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 bien personnaliser la mienne pour qu'elle m'indique à 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 à réaliser si la fenêtre du terminal que j'utilise a été utilisée pour SSH dans 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 mon répertoire personnel est abrégé en ~
. Je trouve que c'est incroyablement pratique de faire cela pour les invites de mon terminal - je sais toujours d'un coup d'œil exactement où je suis, encore plus qu'en regardant une fenêtre du Finder.
Sur tcsh, je fais cela en ajoutant set prompt = 'Plastico %~%# '
à mon fichier .tcshrc dans mon répertoire d'origine. Je l'ai fait sur ksh aussi 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 un peu bizarre comme ça). Mais il semble que je pourrais le faire en ajoutant PS1="Plastico \w $ "
à mon fichier .bashrc.
Edit: Je viens de remarquer que le PO indique que vous êtes intéressé par sh, pas par bash. J'espère que les gens trouveront ça utile quand même.