Fatmawati Achmad Zaenuri / Shutterstock
De nombreux utilisateurs de Linux n’en ont jamais entendu parler 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 été rapidement incorporés 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.
Réellement, 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 changez 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 s’affiche sous la forme d’une liste de répertoires séparés par des espaces.
Dans les exemples suivants, notez la croissance de la pile de répertoires à chaque nouvelle pushd
commander. Notez également que le haut de la pile est à gauche – c’est là que les nouvelles entrées apparaissent.
Après le premier pushd
commande, 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 dernier pushd
la commande 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 d’autres pushd
commandes.
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 le dirs
, comme indiqué ci-dessous, pour afficher la pile de répertoires:
dirs
Cela n’affecte pas la pile, il l’affiche simplement. Certaines des options que vous pouvez utiliser avec pushd
se référer à la position des répertoires dans la pile.
Si vous voulez voir la position numérique de chaque répertoire, vous pouvez utiliser le -v
(vertical) comme indiqué ci-dessous:
dirs -v
Si vous préférez voir le chemin d’accès épelé vers votre répertoire personnel au lieu du tilde (~
), ajouter le -l
(format long), comme ceci:
dirs -v -l
Ajout d’un répertoire à la pile
Comme nous l’avons vu, lorsque vous utilisez le pushd
commande, il fait trois choses: change votre répertoire, ajoute le nouveau répertoire à la pile et affiche la pile pour vous. Vous pouvez utiliser le -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
Maintenant, nous allons utiliser le pushd
commande avec l’option -n et pas dans le /home/dave
répertoire 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 /home/dave
Le répertoire a été ajouté à la pile dans l’emplacement 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.
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
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 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 changés en ~/Pictures
annuaire.
La commande popd
Vous pouvez utiliser le popd
commande 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 passer le nombre à popd
:
dirs -v -l
popd +1
le /home/dave
Le répertoire a été supprimé et ceux qui se trouvaient en dessous dans la pile ont chacun remonté d’un endroit.
Tout comme nous pouvons avec pushd
, on peut compter à partir du bas de la pile avec popd
. Pour supprimer le dernier répertoire de la pile, nous tapons:
popd -0
le ~/Music
Le répertoire 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 passer au 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
Nous avons commencé dans le ~/Projects
annuaire, pushd
dans le répertoire de base, puis popd
Retour à la ~/Projects
annuaire.
Rotation sur toute la pile
Nous allons illustrer comment faire pivoter 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 de base, nous descendrons progressivement dans chaque répertoire jusqu’à ce que nous atteignions le répertoire des articles. Ensuite, nous examinerons la pile de répertoires.
Nous tapons ce qui suit:
pushd ~/Projects
pushd htg
pushd articles
dirs -v -l
Lorsque vous émettez à plusieurs reprises pushd +1
commandes, vous pouvez faire le tour de 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
Estampage sur la pile
Il est facile de revenir aux anciennes habitudes et à l’utilisation 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é au 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
Une fois que vous vous êtes habitué à la pushd
et popd
commandes (et peut-être les utiliser 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?