Comment utiliser pushd et popd sous Linux

Contenu

Une fenêtre de terminal sur un bureau Linux de style Ubuntu.

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 la procédure de navigation dans les répertoires de la ligne de commande.. Nous allons vous montrer comment les utiliser.

Que sont pushd et popd?

L'une des nouveautés Bill Joy intégré à votre 1978 Coquille C était le concept d'une pile de répertoires et les moyens de la manipuler: pushd et popd. L'imitation est la plus sincère des flatteries, la pile de répertoires, pushd, et popd bientôt ils ont été incorporés dans d'autres coquilles (comme bash) et même à d'autres systèmes d'exploitation.

Le concept de pile est simple. Les objets sont placés sur la pile un à la fois, et l'élément le plus récemment ajouté occupe toujours la première position. Lorsque les éléments sont récupérés de la pile, sont éliminés, une commande, du haut jusqu'en bas. Les piles de cette nature sont souvent appelées Dernier entré, premier sorti (LIFO) colas.

Vraiment, pushd et popd ils sont un peu plus flexibles que cela, mais c'est un bon modèle auquel faire attention pour l'instant.

Comment nous nous référons à une pile de répertoires, il n’est probablement pas surprenant que le “ré” au pushd et popd ça veut dire “annuaire”. Ces commandes vous permettent d'insérer 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 de répertoire comme 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.

Dans les exemples suivants, regardez la pile de répertoires grandir avec 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 commander, il y a deux entrées dans la pile: le répertoire que vous avez quitté et celui qui a bougé.

Pour notre exemple, nous écrivons ce qui suit:

pushd ~/Bureau
pushd ~/Musique
pushd ~/Documents
pushd ~/Images
poussé ~

Le dernier pushd La commande nous a ramenés à notre répertoire personnel, donc la première et la dernière entrée de la pile sont le tilde (~), qui représente notre répertoire personnel. Cela montre que, même si un répertoire est déjà sur la pile, sera ajouté à nouveau pour les autres pushd commandes.

Notez également que l'entrée la plus à gauche dans 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 commander, comme il est montré dans ce qui suit, pour afficher la pile de répertoires:

dirs

N'affecte pas la pile, juste l'échantillon. Certaines des alternatives que vous pouvez utiliser avec pushd vérifier la position des répertoires sur la pile.

Si vous voulez voir la position numérique de chaque répertoire, vous pouvez utiliser le -v (verticale) comme il est montré dans ce qui suit:

répertoires -v

Si vous préférez voir le chemin orthographié de votre répertoire personnel au lieu du tilde (~), ajouter le -l (format long) option, Donc:

répertoires -v -l

Ajouter un répertoire à la pile

Comme nous l'avons vu, lorsque vous utilisez le pushd commander, fait trois choses: changer de répertoire, ajouter le nouveau répertoire à la pile et afficher 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:

répertoires -v -l

Maintenant, nous utiliserons le pushd commande avec l'option -n et pas dans le /home/dave répertoire en paramètre. Après, nous allons vérifier à nouveau la pile de répertoires.

Nous écrivons ce qui suit:

pushd -n /home/dave
répertoires -v -l

Les /home/dave Le répertoire a été ajouté à la pile dans le slot 1, qui est la deuxième place dans la pile. Il ne peut pas être en première position car l'emplacement zéro est toujours le répertoire actuel.

On ne quitte pas le répertoire courant, ~/Videos, il n'a donc pas été tourné vers une autre position dans la pile.

Changement de répertoire par rotation de la pile

Vous pouvez utiliser des paramètres numériques avec pushd pour se déplacer vers n'importe quel répertoire sur une pile, et la pile tourne quand c'est le cas. Le répertoire que vous avez choisi de déplacer devient la première entrée de la pile.

Fait référence aux répertoires de la pile par leur numéro de position. Peut compter à partir du haut ou du bas de la pile. Pour les nombres positifs, Quoi +3, compter d'en haut; pour les nombres négatifs, Quoi -2, compte à rebours.

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

poussé +3

Les répertoires de la pile au dessus du répertoire que nous avons choisi sont déplacés en fin de pile. Notre répertoire choisi occupe maintenant la première position et nous passons à ce répertoire.

Si nous voulons passer au répertoire en bas de la pile, nous pouvons utiliser la commande suivante:

poussé -0

Le dernier répertoire est déplacé vers le premier emplacement et tous les autres sont déplacés vers le bas de la pile. Nous passons au ~/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 à la position 1 il est /home/dave. Pour effacer cela de la pile, nous écrivons ce qui suit pour passer le nombre à popd:

répertoires -v -l
popd +1

Les /home/dave le répertoire a été supprimé, et ceux qui étaient au-dessous de lui dans la pile sont montés d'une place.

De la même manière que nous pouvons avec pushd, on peut compter à partir du bas de la pile avec popd. Pour supprimer le dernier répertoire de la pile, on a écrit:

popd -0

Les ~/Music Le répertoire est supprimé de la dernière position sur 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 déplacer vers un autre répertoire. nous utiliserons popd pour déposer le premier répertoire sur la pile et passer au répertoire en deuxième position. C'est le répertoire d'où vous venez, vous êtes donc renvoyé dans le répertoire dans lequel vous vous trouviez à l'origine.

Nous écrivons ce qui suit:

poussé ~
popd

Nous avons commencé dans le ~/Projects annuaire, pushd vers le répertoire personnel, et par la suite popd retour à ~/Projects annuaire.

Faites tourner 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ù sur le système de fichiers.

Notre niveau d'imbrication le plus profond est:

/accueil/dave/Projets/htg/articles

Depuis le répertoire personnel, nous descendrons progressivement dans chaque répertoire jusqu'à ce que nous atteignions le répertoire des messages. Après, nous verrons la pile de répertoires.

Nous écrivons ce qui suit:

pushd ~/Projets
pushd htg
articles pushd
répertoires -v -l

Quand il diffuse à plusieurs reprises pushd +1 commandes, peut boucler sur et sur la pile de répertoires. Si tu fais ça souvent, pushd +1 serait un bon candidat pour un alias.

Écrivez ce qui suit:

poussé +1

EN RELATION: Comment créer des alias et des fonctions shell sous Linux

Estampé sur la pile

Il est facile de revenir aux vieilles habitudes et d'utiliser cd changer de répertoire. S'il le fait, scellera le premier répertoire sur la pile. C'est inévitable, puisque le premier espace est réservé au répertoire de travail courant; aucun des autres ne change de position.

Pour faire ceci, écris ce qui suit:

répertoires -v -l
cd ~/Musique
répertoires -v -l


Une fois que vous vous êtes habitué au pushd et popd commandes (et, peut-être, utilisez-les pour créer des alias), vous aurez un moyen super rapide de sauter entre les répertoires.

C'est pourquoi nous restons en ligne de commande. Roches d'efficacité, vérité?

EN RELATION: 37 Commandes Linux importantes que vous devez connaître

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.