Comment utiliser pushd et popd sous Linux

De nombreux utilisateurs de Linux n’ont jamais entendu parler de pushd et popd, mais ils existent depuis toujours. Ils peuvent également accélérer considérablement le processus de navigation dans les répertoires sur la ligne de commande. Nous vous expliquerons comment les utiliser.

Que sont pushd et popd?

Une des innovations Bill Joy incorporé dans son 1978 Coquille C était le concept d’une pile de répertoires et les moyens de la manipuler: pushd et popd. L’imitation étant la forme la plus sincère de flatterie, la pile de répertoires, pushd et popd ont rapidement été incorporées dans d’autres shells (comme Bash) et même d’autres systèmes d’exploitation.

Le concept de la pile est simple. Les éléments sont placés sur la pile un à la fois, l’élément le plus récemment ajouté occupant toujours la première position. Lorsque les éléments sont récupérés de la pile, ils sont supprimés, dans l’ordre, du haut vers le bas. Les piles de cette nature sont souvent appelées Dernier entré, premier sorti (LIFO) files d’attente.

En fait, pushd et popd sont un peu plus flexibles que cela, mais c’est un bon modèle à garder à l’esprit pour le moment.

Comme nous nous référons à une pile de répertoires, il n’est probablement pas surprenant que le «d» dans pushd et popd signifie «répertoire». Ces commandes vous permettent de pousser des répertoires ou de les retirer de la pile de répertoires.

Mais comment cela nous profite-t-il?

Comment pushd remplit la pile

Lorsque vous utilisez pushd, les trois choses suivantes se produisent:

Vous modifiez le répertoire de la même manière que si vous aviez utilisé cd.
Le nom et le chemin du répertoire sont ajoutés à la pile.
La pile est affichée sous la forme d’une liste de répertoires séparés par des espaces.

  Comment désactiver une adresse e-mail dans Gmail

Dans les exemples suivants, notez la croissance de la pile de répertoires à chaque nouvelle commande pushd. Notez également que le haut de la pile est à gauche – c’est là que les nouvelles entrées apparaissent.

Après la première commande pushd, il y a deux entrées dans la pile: le répertoire que vous avez laissé et celui vers lequel vous vous êtes déplacé.

Pour notre exemple, nous tapons ce qui suit:

pushd ~/Desktop
pushd ~/Music
pushd ~/Documents
pushd ~/Pictures
pushd ~

le

La dernière commande pushd nous a ramenés à notre répertoire personnel, donc les première et dernière entrées de la pile sont le tilde (~), qui représente notre répertoire personnel. Cela montre que, bien qu’un répertoire soit déjà dans la pile, il sera à nouveau ajouté pour les autres commandes pushd.

Notez également que l’entrée la plus à gauche de la pile, qui est l’entrée la plus récemment ajoutée, est votre répertoire actuel.

La commande dirs

Vous pouvez utiliser la commande dirs, comme indiqué ci-dessous, pour afficher la pile de répertoires:

dirs

le

Cela n’affecte pas la pile, il l’affiche simplement. Certaines des options que vous pouvez utiliser avec pushd font référence à la position des répertoires dans la pile.

Si vous souhaitez voir la position numérique de chaque répertoire, vous pouvez utiliser l’option -v (vertical) comme indiqué ci-dessous:

dirs -v

le

Si vous préférez voir le chemin d’accès épelé vers votre répertoire personnel au lieu du tilde (~), ajoutez l’option -l (format long), comme ceci:

dirs -v -l

le

Ajout d’un répertoire à la pile

Comme nous l’avons vu, lorsque vous utilisez la commande pushd, elle fait trois choses: change votre répertoire, ajoute le nouveau répertoire à la pile et affiche la pile pour vous. Vous pouvez utiliser l’option -n (pas de rotation) pour ajouter un répertoire à la pile sans changer le répertoire courant.

Voici notre pile de répertoires:

dirs -v -l

le

Maintenant, nous allons utiliser la commande pushd avec l’option -n et passer dans le répertoire / home / dave en tant que paramètre. Ensuite, nous vérifierons à nouveau la pile de répertoires.

Nous tapons ce qui suit:

pushd -n /home/dave
dirs -v -l

le

Le répertoire / home / dave a été ajouté à la pile dans le slot 1, qui est le deuxième endroit de la pile. Il ne peut pas occuper la première position car l’emplacement zéro est toujours le répertoire courant.

  Rechercher des films par genre, thème, lieu, période, etc.

Nous n’avons pas quitté le répertoire actuel, ~ / Videos, donc il n’a pas été tourné vers une autre position dans la pile.

Changement de répertoire en faisant pivoter la pile

Vous pouvez utiliser des paramètres numériques avec pushd pour vous déplacer vers n’importe quel répertoire d’une pile, et la pile pivote lorsque vous le faites. Le répertoire que vous avez choisi de déplacer devient alors la première entrée de la pile.

Vous référencez les répertoires dans la pile par leur numéro de position. Vous pouvez compter à partir du haut ou du bas de la pile. Pour les nombres positifs, tels que +3, comptez à partir du haut; pour les nombres négatifs, tels que -2, comptez à partir du bas.

Le répertoire / home / dave / Documents est en position trois. Nous pouvons utiliser la commande suivante pour déplacer ce répertoire:

pushd +3

le

Les répertoires de la pile au-dessus du répertoire que nous avons choisi sont déplacés vers le bas de la pile. Notre répertoire choisi occupe maintenant la première position et nous sommes déplacés dans ce répertoire.

Si nous voulons changer dans le répertoire en bas de la pile, nous pouvons utiliser la commande suivante:

pushd -0

le

Le dernier répertoire est déplacé vers le premier emplacement, et tous les autres sont déplacés vers le bas dans la pile. Nous sommes passés au répertoire ~ / Pictures.

La commande popd

Vous pouvez utiliser la commande popd pour supprimer des répertoires de la pile.

Si nous regardons la pile de répertoires, nous pouvons voir que le répertoire en position 1 est / home / dave. Pour supprimer cela de la pile, nous tapons ce qui suit pour transmettre le numéro à popd:

dirs -v -l
popd +1

le

Le répertoire / home / dave a été supprimé, et ceux qui se trouvaient en dessous dans la pile ont chacun remonté d’un endroit.

  Comment faire fonctionner le raccourci de retour arrière dans Chrome

Tout comme nous pouvons avec pushd, nous pouvons compter à partir du bas de la pile avec popd. Pour supprimer le dernier répertoire de la pile, nous tapons:

popd -0

le

Le répertoire ~ / Music est supprimé de la dernière position de la pile.

Pour changer de répertoire, faire quelque chose, puis revenir au répertoire précédent, vous pouvez utiliser pushd et popd ensemble.

Nous utiliserons pushd pour passer à un autre répertoire. Nous utiliserons popd pour supprimer le répertoire le plus haut de la pile et nous déplacer vers le répertoire en deuxième position. Il s’agit du répertoire dont vous venez de sortir, vous êtes donc replacé dans le répertoire dans lequel vous étiez à l’origine.

Nous tapons ce qui suit:

pushd ~
popd

le

Nous avons commencé dans le répertoire ~ / Projects, pushd dans le répertoire home, puis nous sommes retournés dans le répertoire ~ / Projects.

Rotation dans toute la pile

Nous allons illustrer comment faire une rotation dans une pile avec des répertoires imbriqués, mais vous pouvez utiliser n’importe quel répertoire n’importe où dans le système de fichiers.

Notre niveau de nidification le plus profond est:

/home/dave/Projects/htg/articles

Depuis le répertoire personnel, nous descendrons progressivement dans chaque répertoire jusqu’à ce que nous atteignions le répertoire articles. Ensuite, nous examinerons la pile de répertoires.

Nous tapons ce qui suit:

pushd ~/Projects
pushd htg
pushd articles
dirs -v -l

le

Lorsque vous émettez à plusieurs reprises des commandes pushd +1, vous pouvez parcourir en boucle la pile de répertoires. Si vous faites cela souvent, pushd +1 serait un bon candidat pour un alias.

Tapez ce qui suit:

pushd +1

le

Estampage sur la pile

Il est facile de revenir aux anciennes habitudes et d’utiliser le cd pour changer de répertoire. Si vous faites cela, vous tamponnerez le premier répertoire de la pile. Ceci est inévitable, car le premier emplacement est réservé pour le répertoire de travail actuel – aucun des autres ne change de position.

Pour ce faire, tapez ce qui suit:

dirs -v -l
cd ~/Music
dirs -v -l

le

Une fois que vous vous serez habitué aux commandes pushd et popd (et que vous les utiliserez peut-être pour créer quelques alias), vous aurez un moyen ultra-rapide de sauter entre les répertoires.

C’est pourquoi nous nous accrochons à la ligne de commande. L’efficacité est primordiale, non?