Τρόπος χρήσης pushd και popd στο Linux

Πολλοί άνθρωποι του Linux δεν έχουν ακούσει ποτέ για pushd και popd, αλλά υπάρχουν για πάντα. Μπορούν επίσης να επιταχύνουν δραματικά τη διαδικασία πλοήγησης καταλόγων στη γραμμή εντολών. Θα σας καθοδηγήσουμε πώς να τα χρησιμοποιήσετε.

Τι είναι τα push και popd;

Μία από τις καινοτομίες Μπιλ Τζόι ενσωματώθηκε στο 1978 του C Shell ήταν η έννοια μιας στοίβας καταλόγου και τα μέσα χειρισμού της: pushd και popd. Η μίμηση είναι η πιο ειλικρινής μορφή κολακείας, η στοίβα καταλόγου, το pushd και το popd σύντομα ενσωματώθηκαν σε άλλα κελύφη (όπως το Bash) και ακόμη και σε άλλα λειτουργικά συστήματα.

Η ιδέα της στοίβας είναι απλή. Τα στοιχεία τοποθετούνται στη στοίβα ένα κάθε φορά, με το πιο πρόσφατα προστιθέμενο στοιχείο να καταλαμβάνει πάντα την πρώτη θέση. Όταν τα στοιχεία ανακτώνται από τη στοίβα, αφαιρούνται, με τη σειρά, από την κορυφή προς τα κάτω. Οι στοίβες αυτής της φύσης αναφέρονται συχνά ως Last In, First Out (LIFO) ουρές.

Στην πραγματικότητα, το push και το popd είναι λίγο πιο ευέλικτο από αυτό, αλλά αυτό είναι ένα καλό μοντέλο που πρέπει να θυμάστε προς το παρόν.

Καθώς αναφερόμαστε σε μια στοίβα καταλόγου, μάλλον δεν αποτελεί έκπληξη το γεγονός ότι το “d” στα pushd και popd σημαίνει “κατάλογος”. Αυτές οι εντολές σας επιτρέπουν να ωθήσετε τους καταλόγους στη στοίβα καταλόγου ή να τους αφαιρέσετε από αυτήν.

Πώς μας ωφελεί όμως αυτό;

Πώς ωθήθηκε Συμπληρώνει τη Στοίβα

Όταν χρησιμοποιείτε pushd, συμβαίνουν τα ακόλουθα τρία πράγματα:

Αλλάζετε τον κατάλογο όπως θα χρησιμοποιούσατε το cd.
Το όνομα και η διαδρομή του καταλόγου προστίθενται στη στοίβα.
Η στοίβα εμφανίζεται ως λίστα καταλόγων διαχωρισμένη με διάστημα.

  Πώς να ρυθμίσετε το Seafile σε Linux

Στα ακόλουθα παραδείγματα, σημειώστε πώς μεγαλώνει η στοίβα καταλόγου με κάθε νέα εντολή ώθησης. Σημειώστε επίσης ότι το επάνω μέρος της στοίβας βρίσκεται στα αριστερά — εδώ εμφανίζονται οι νέες καταχωρήσεις.

Μετά την πρώτη εντολή ώθησης, υπάρχουν δύο καταχωρήσεις στη στοίβα: ο κατάλογος που αφήσατε και αυτός στον οποίο μετακινηθήκατε.

Για το παράδειγμά μας, πληκτρολογούμε τα εξής:

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

ο

Η τελευταία εντολή ώθησης μας πήγε πίσω στον αρχικό μας κατάλογο, επομένως η πρώτη και η τελευταία εγγραφή στη στοίβα είναι το tilde (~), το οποίο αντιπροσωπεύει τον αρχικό μας κατάλογο. Αυτό δείχνει ότι, αν και ένας κατάλογος βρίσκεται ήδη στη στοίβα, θα προστεθεί ξανά για άλλες εντολές ώθησης.

Σημειώστε επίσης ότι η πιο αριστερή καταχώρηση στη στοίβα, η οποία είναι η πιο πρόσφατη καταχώρηση, είναι ο τρέχων κατάλογος σας.

Η Διεύθυνση Διευθυντών

Μπορείτε να χρησιμοποιήσετε την εντολή dirs, όπως φαίνεται παρακάτω, για να εμφανίσετε τη στοίβα καταλόγου:

dirs

ο

Δεν επηρεάζει τη στοίβα, απλώς την εμφανίζει. Μερικές από τις επιλογές που μπορείτε να χρησιμοποιήσετε με το pushd αναφέρονται στη θέση των καταλόγων στη στοίβα.

Εάν θέλετε να δείτε την αριθμητική θέση κάθε καταλόγου, μπορείτε να χρησιμοποιήσετε την επιλογή -v (κάθετη) όπως φαίνεται παρακάτω:

dirs -v

ο

Εάν προτιμάτε να δείτε την ορθογραφημένη διαδρομή προς τον αρχικό σας κατάλογο αντί για την περισπωμένη (~), προσθέστε την επιλογή -l (μεγάλη μορφή), όπως:

dirs -v -l

ο

Προσθήκη καταλόγου στη στοίβα

Όπως είδαμε, όταν χρησιμοποιείτε την εντολή pushd, κάνει τρία πράγματα: αλλάζει τον κατάλογό σας, προσθέτει τον νέο κατάλογο στη στοίβα και εμφανίζει τη στοίβα για εσάς. Μπορείτε να χρησιμοποιήσετε την επιλογή -n (χωρίς περιστροφή) για να προσθέσετε έναν κατάλογο στη στοίβα χωρίς να αλλάξετε τον τρέχοντα κατάλογο.

Εδώ είναι η στοίβα του καταλόγου μας:

dirs -v -l

ο

Τώρα, θα χρησιμοποιήσουμε την εντολή pushd με την επιλογή -n και το pas στον κατάλογο /home/dave ως παράμετρο. Στη συνέχεια, θα ελέγξουμε ξανά τη στοίβα καταλόγου.

  Πώς να εγγράψετε την οθόνη σας από τη γραμμή εντολών Linux

Πληκτρολογούμε τα εξής:

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

ο

Ο κατάλογος /home/dave προστέθηκε στη στοίβα στην υποδοχή 1, η οποία είναι η δεύτερη θέση στη στοίβα. Δεν μπορεί να καταλάβει την κορυφαία θέση επειδή η υποδοχή μηδέν είναι πάντα ο τρέχων κατάλογος.

Δεν φύγαμε από τον τρέχοντα κατάλογο, ~/Videos, επομένως δεν έγινε εναλλαγή σε άλλη θέση στη στοίβα.

Αλλαγή καταλόγου περιστρέφοντας τη στοίβα

Μπορείτε να χρησιμοποιήσετε αριθμητικές παραμέτρους με pushd για να μετακινηθείτε σε οποιονδήποτε κατάλογο σε μια στοίβα και η στοίβα περιστρέφεται όταν το κάνετε. Ο κατάλογος που επιλέξατε να μετακινήσετε γίνεται τότε η πρώτη καταχώρηση στη στοίβα.

Αναφέρετε τους καταλόγους στη στοίβα με τον αριθμό της θέσης τους. Μπορείτε να μετρήσετε από το πάνω ή το κάτω μέρος της στοίβας. Για θετικούς αριθμούς, όπως +3, μετρήστε από την κορυφή. για αρνητικούς αριθμούς, όπως -2, μετρήστε από κάτω.

Ο κατάλογος /home/dave/Documents βρίσκεται στη θέση τρία. Μπορούμε να χρησιμοποιήσουμε την ακόλουθη εντολή για να μετακινήσουμε αυτόν τον κατάλογο:

pushd +3

ο

Οι κατάλογοι στη στοίβα πάνω από τον κατάλογο που επιλέξαμε μετακινούνται στο κάτω μέρος της στοίβας. Ο επιλεγμένος κατάλογος καταλαμβάνει τώρα την πρώτη θέση και μεταφερόμαστε σε αυτόν τον κατάλογο.

Εάν θέλουμε να μεταβούμε στον κατάλογο στο κάτω μέρος της στοίβας, μπορούμε να χρησιμοποιήσουμε την ακόλουθη εντολή:

pushd -0

ο

Ο τελευταίος κατάλογος μετακινείται στην πρώτη υποδοχή και όλοι οι άλλοι μετακινούνται προς τα κάτω στη στοίβα. Έχουμε αλλάξει στον κατάλογο ~/Pictures.

Η εντολή popd

Μπορείτε να χρησιμοποιήσετε την εντολή popd για να αφαιρέσετε καταλόγους από τη στοίβα.

Αν κοιτάξουμε τη στοίβα καταλόγου, μπορούμε να δούμε ότι ο κατάλογος στη θέση 1 είναι /home/dave. Για να το αφαιρέσουμε από τη στοίβα, πληκτρολογούμε τα εξής για να περάσουμε τον αριθμό στο popd:

dirs -v -l
popd +1

ο

Ο κατάλογος /home/dave καταργήθηκε και εκείνοι που βρίσκονταν κάτω από αυτόν στη στοίβα έχουν μετακινηθεί κατά μία θέση επάνω.

Όπως μπορούμε με το pushd, μπορούμε να μετρήσουμε από το κάτω μέρος της στοίβας με το popd. Για να αφαιρέσουμε τον τελευταίο κατάλογο από τη στοίβα, πληκτρολογούμε:

popd -0

ο

Ο κατάλογος ~/Music αφαιρείται από την τελευταία θέση στη στοίβα.

  Πώς να δημιουργήσετε θέμα Hyper Terminal στο Linux

Για να αλλάξετε τον κατάλογο, να κάνετε κάτι και, στη συνέχεια, να επιστρέψετε στον προηγούμενο κατάλογο, μπορείτε να χρησιμοποιήσετε push και popd μαζί.

Θα χρησιμοποιήσουμε pushd για να μετακινηθούμε σε διαφορετικό κατάλογο. Θα χρησιμοποιήσουμε το popd για να απορρίψουμε τον κορυφαίο κατάλογο στη στοίβα και να μετακινηθούμε στον κατάλογο στη δεύτερη θέση. Αυτός είναι ο κατάλογος από τον οποίο μόλις μετακινηθήκατε, ώστε να μεταφερθείτε ξανά στον κατάλογο στον οποίο ήσασταν αρχικά.

Πληκτρολογούμε τα εξής:

pushd ~
popd

ο

Ξεκινήσαμε από τον κατάλογο ~/Projects, ωθήσαμε στον αρχικό κατάλογο και, στη συνέχεια, επιστρέψαμε στον κατάλογο ~/Projects.

Περιστροφή μέσω ολόκληρης της στοίβας

Θα δείξουμε τον τρόπο περιστροφής μέσα από μια στοίβα με μερικούς ένθετους καταλόγους, αλλά θα μπορούσατε να χρησιμοποιήσετε οποιουσδήποτε καταλόγους οπουδήποτε στο σύστημα αρχείων.

Το βαθύτερο επίπεδο φωλιάς μας είναι:

/home/dave/Projects/htg/articles

Από τον αρχικό κατάλογο, θα κατεβαίνουμε σταδιακά σε κάθε κατάλογο μέχρι να φτάσουμε στον κατάλογο άρθρων. Στη συνέχεια, θα δούμε τη στοίβα καταλόγου.

Πληκτρολογούμε τα εξής:

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

ο

Όταν εκπέμπετε επανειλημμένα εντολές push +1, μπορείτε να κάνετε κύκλους και κύκλους στη στοίβα των καταλόγων. Εάν το κάνετε συχνά, η ώθηση +1 θα ήταν καλός υποψήφιος για ένα ψευδώνυμο.

Πληκτρολογήστε τα εξής:

pushd +1

ο

Σφράγιση πάνω από τη στοίβα

Είναι εύκολο να επιστρέψετε στις παλιές συνήθειες και να χρησιμοποιήσετε το cd για να αλλάξετε κατάλογο. Εάν το κάνετε αυτό, θα σφραγίσετε τον πρώτο κατάλογο στη στοίβα. Αυτό είναι αναπόφευκτο, καθώς η πρώτη υποδοχή είναι δεσμευμένη για τον τρέχοντα κατάλογο εργασίας — κανένας από τους άλλους δεν αλλάζει θέση.

Για να το κάνετε αυτό, πληκτρολογήστε τα εξής:

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

ο

Αφού εξοικειωθείτε με τις εντολές pushd και popd (και, ίσως, να τις χρησιμοποιήσετε για να δημιουργήσετε μερικά ψευδώνυμα), θα έχετε έναν εξαιρετικά γρήγορο τρόπο μεταπήδησης μεταξύ καταλόγων.

Αυτός είναι ο λόγος που κολλάμε γύρω από τη γραμμή εντολών. Η αποδοτικότητα, σωστά;