pushd
et popd
sont des commandes qui vous permettent de travailler avec la pile de répertoires et de modifier le répertoire de travail actuel sous Linux et d'autres systèmes d'exploitation de type Unix. Bien que pushd
et popd
sont des commandes très puissantes et utiles, elles sont sous-estimées et rarement utilisées.
Dans ce tutoriel, nous allons vous montrer comment utiliser le pushd
et popd
commandes pour naviguer dans l'arborescence des répertoires de votre système.
Pile de répertoire #
La pile de répertoires est une liste de répertoires dans lesquels vous avez précédemment navigué. Le contenu de la pile de répertoires peut être vu en utilisant le dirs
commande. Les répertoires sont ajoutés à la pile lors du passage à un répertoire à l'aide de pushd
commande et supprimé avec le popd
commande.
Le répertoire de travail actuel est toujours au sommet de la pile de répertoires. Le répertoire de travail actuel est le répertoire (dossier) dans lequel l'utilisateur travaille actuellement. Chaque fois que vous interagissez avec la ligne de commande, vous travaillez dans un répertoire.
Le pwd
La commande vous permet de savoir dans quel répertoire vous vous trouvez actuellement.
Lorsque vous naviguez dans le système de fichiers, utilisez l'Tab
clé pour compléter automatiquement les noms des répertoires. L'ajout d'une barre oblique à la fin du nom du répertoire est facultatif.
pushd
, popd
et dirs
sont des commandes internes du shell, et son comportement peut légèrement différer d'un shell à l'autre. Nous couvrirons la version intégrée Bash des commandes.
pushd
Commande #
La syntaxe du pushd
commande est la suivante :
pushd [OPTIONS] [DIRECTORY]
Par exemple, pour enregistrer le répertoire actuel en haut de la pile de répertoires et passer à /var/www
vous taperiez :
~$ pushd /var/www
En cas de succès, la commande ci-dessus imprimera la pile de répertoires. ~
est le répertoire dans lequel nous avons exécuté le pushd
commande. Le symbole tilde ~
signifie répertoire personnel.
/var/www ~
pushd
enregistre d'abord le répertoire de travail actuel en haut de la pile, puis navigue vers le répertoire donné. Comme le répertoire courant doit toujours être en haut de la pile, une fois modifié, le nouveau répertoire courant va en haut de la pile mais il n'est pas enregistré dans la pile. Pour l'enregistrer, vous devez invoquer pushd
à partir de cela. Si vous utilisez cd
pour changer de répertoire, l'élément du haut de la pile sera perdu,
Ajoutons un autre répertoire à la pile :
/var/www$ pushd /opt
/opt /var/www ~
Pour supprimer le changement de répertoire, utilisez le -n
option. Par exemple, pour ajouter le /usr/local
répertoire à la pile mais sans y changer, vous taperiez :
/opt$ pushd -n /usr/local
Comme le répertoire courant (qui est toujours en haut) n'est pas modifié, le /usr/local
répertoire est ajouté en deuxième à partir du haut de la pile :
/opt /usr/local /var/www ~
Le pushd
accepte deux options, +N
et -N
qui vous permet de naviguer vers Nth
répertoire de la pile. Le +N
l'option passe à Nth
élément de la liste de pile comptant de gauche à droite en commençant par zéro. Lorsque -N
est utilisé le sens du décompte est de droite à gauche.
Pour mieux illustrer les options, imprimons la pile de répertoires actuelle :
/opt$ dirs -l -v
La sortie affichera une liste indexée de la pile de répertoire :
0 /opt
1 /usr/local
2 /var/www
3 /home/linuxize
Si vous voulez changer pour le /var/www
répertoire et amenez-le au sommet de la pile, vous utiliserez l'un des éléments suivants.
En comptant de haut en bas (ou de gauche à droite), l'index du répertoire est 2
.
pushd +2
En comptant de bas en haut l'index du /var/www
répertoire est 1
.
pushd -1.
Lorsqu'il est utilisé sans aucun argument, pushd
basculera les deux répertoires supérieurs et fera du nouveau répertoire supérieur le répertoire actuel. C'est la même chose que lors de l'utilisation du cd -
commande.
popd
Commande #
Le popd
commande prend la forme :
popd [OPTIONS]
Lorsqu'il est utilisé sans argument, popd
supprime le répertoire supérieur de la pile et navigue vers le nouveau répertoire supérieur.
Disons que nous avons la pile de répertoires suivante :
/opt /usr/local /var/www /etc/nginx ~
Si vous exécutez le popd
commande, il supprimera le /opt
de la pile et changez pour /usr/local
répertoire :
/opt$ popd
La sortie affichera la nouvelle pile de répertoire :
/usr/local /var/www /etc/nginx ~
Le -n
l'option supprime le changement de répertoire par défaut et supprime le deuxième élément de la pile :
/opt$ popd -n
/usr/local /etc/nginx ~
Identique à pushd
, popd
accepte aussi le +N
et -N
options qui peuvent être utilisées pour supprimer le Nth
répertoire de la pile.
/opt$ popd +1
/usr/local ~
Conclusion #
Normalement, vous utiliseriez le cd
commande pour passer d'un répertoire à un autre. Cependant, si vous passez beaucoup de temps sur la ligne de commande, pushd
et popd
augmenteront votre productivité et votre efficacité.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.