Agence web » Actualités du digital » Comment utiliser pushd et popd sous Linux

Comment utiliser pushd et popd sous Linux

Beaucoup de gens 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?

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

Le concept de la pile est simple. Les objets sont placés sur la pile un par un, le dernier élément 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, de haut en bas. Les piles de cette nature sont souvent appelées files d'attente Last In, First Out (LIFO).

Réellement, pushd et popd sont un peu plus flexibles que cela, mais c'est un bon modèle à garder à l'esprit pour l'instant.

Comme nous parlons d'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 supprimer 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 d'annuaires à chaque nouveau 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 , il y a deux entrées dans la pile: le répertoire que vous avez quitté 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 la dernière entrée 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 (verticale) comme indiqué ci-dessous:

dirs -v

Si vous préférez voir le chemin d'accès écrit 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: modifie 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 d'annuaires:

dirs -v -l

Maintenant, nous allons utiliser le pushd commande avec l'option -n et pas dans le /home/dave répertoire comme 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 répertoire a été ajouté à la pile dans l'emplacement 1, qui est la deuxième place de la pile. Il ne peut pas occuper la première position car l'emplacement zéro est toujours le répertoire actuel.

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

Changer de répertoire en faisant pivoter la pile

Vous pouvez utiliser des paramètres numériques avec pushd pour déplacer vers n'importe quel répertoire d'une pile, et la pile tourne 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 de 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. Le répertoire que nous avons choisi occupe désormais la première place et nous sommes transférés dans ce répertoire.

Si nous voulons changer dans le répertoire au 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 avons changé pour ~/Pictures annuaire.

La commande popd

Vous pouvez utiliser le 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 nombre à popd:

dirs -v -l
popd +1

le /home/dave répertoire a été supprimé, et ceux qui se trouvaient en dessous dans la pile ont chacun remonté d'une place.

Tout comme nous pouvons pushd, on peut compter 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 modifier le 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 personnel, puis popd Retour à la ~/Projects annuaire.

Rotation à travers toute la pile

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

Notre niveau d'imbrication le plus profond est:

/home/dave/Projects/htg/articles

À partir du répertoire personnel, nous descendrons progressivement dans chaque répertoire jusqu'à atteindre le répertoire des articles. Ensuite, nous allons examiner 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 parcourir 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 à ses anciennes habitudes et à son utilisation cd pour changer de répertoire. Dans ce cas, 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

Après vous être habitué à la pushd et popd (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 traînons autour de la ligne de commande. Des roches d'efficacité, non?

★★★★★