4Sep
Όταν εκτελείτε μια εντολή στη γραμμή εντολών bash, κανονικά εκτυπώνει την έξοδο της εντολής απευθείας στον τερματικό ώστε να μπορείτε να την διαβάσετε αμέσως.Αλλά bash σας επιτρέπει επίσης να "ανακατευθύνει" την έξοδο οποιασδήποτε εντολής, την αποθήκευση σε ένα αρχείο κειμένου, ώστε να μπορείτε να ελέγξετε την παραγωγή αργότερα.
Αυτό λειτουργεί σε bash σε οποιοδήποτε λειτουργικό σύστημα, από το Linux και το MacOS στο περιβάλλον βασισμένο στο Ubuntu των Windows 10 bash.
Επιλογή 1: Εξαγωγή ανακατεύθυνσης σε αρχείο μόνο
Για να χρησιμοποιήσετε την ανακατεύθυνση bash, εκτελέστε μια εντολή, καθορίστε το & gt;ή & gt;και, στη συνέχεια, δώστε τη διαδρομή ενός αρχείου στο οποίο θέλετε να ανακατευθυνθεί η έξοδος.
- & gt;ανακατευθύνει την έξοδο μιας εντολής σε ένα αρχείο, αντικαθιστώντας τα υπάρχοντα περιεχόμενα του αρχείου.
- > & gt;ανακατευθύνει την έξοδο μιας εντολής σε ένα αρχείο, προσθέτοντας την έξοδο στα υπάρχοντα περιεχόμενα του αρχείου.
Τεχνικά, αυτό ανακατευθύνει "stdout" - την τυπική έξοδο, η οποία είναι η οθόνη-σε ένα αρχείο.
Εδώ είναι ένα απλό παράδειγμα.Η εντολή ls απαριθμεί αρχεία και φακέλους στον τρέχοντα κατάλογο.Ετσι.όταν εκτελείτε την ακόλουθη εντολή, ls θα απαριθμήσει αρχεία και φακέλους στον τρέχοντα κατάλογο.Αλλά δεν θα τα εκτυπώσετε στην οθόνη - θα τα αποθηκεύσετε στο αρχείο που καθορίζετε.
ls & gt;Το αρχείο /path/to/Δεν χρειάζεται να καθορίσετε τη διαδρομή προς ένα υπάρχον αρχείο.Καθορίστε κάθε έγκυρη διαδρομή και bash θα δημιουργήσει ένα αρχείο σε εκείνη την τοποθεσία.
Αν δείτε τα περιεχόμενα του αρχείου, θα δείτε την έξοδο της εντολής ls.Για παράδειγμα, η εντολή cat εκτυπώνει τα περιεχόμενα ενός αρχείου στο τερματικό:
cat /path/to/ αρχείοΝα θυμάστε ότι το & gt;ο χειριστής αντικαθιστά το υπάρχον περιεχόμενο του αρχείου με την έξοδο της εντολής.Εάν θέλετε να αποθηκεύσετε την έξοδο πολλών εντολών σε ένα μόνο αρχείο, θα χρησιμοποιούσατε το & gt; & gt;χειριστή.Για παράδειγμα, η ακόλουθη εντολή θα προσθέσει πληροφορίες συστήματος στο αρχείο που καθορίσατε:
uname -a & gt; & gt;/path/to/ αρχείοΕάν το αρχείο δεν υπάρχει ήδη, bash θα δημιουργήσει το αρχείο.Διαφορετικά, το bash θα αφήσει μόνο τα υπάρχοντα περιεχόμενα του αρχείου και θα προσθέσει την έξοδο στο τέλος του αρχείου.
Όταν προβάλετε τα περιεχόμενα του αρχείου, θα δείτε τα αποτελέσματα της δεύτερης σας εντολής να προσαρτηθούν στο τέλος του αρχείου:
Μπορείτε να επαναλάβετε αυτή τη διαδικασία όσες φορές επιθυμείτε να διατηρείτε την προσθήκη εξόδου στο τέλος τηςαρχείο.
Επιλογή 2: Έξοδος εκτύπωσης κανονικά και ανακατεύθυνση σε αρχείο
Ίσως δεν σας αρέσει η ανακατεύθυνση εξόδου με το & gt;ή & gt;καθώς δεν θα δείτε την έξοδο της εντολής στο τερματικό.Αυτή είναι η εντολή για το τee.Η εντολή tee εκτυπώνει την είσοδο που λαμβάνει στην οθόνη και η αποθηκεύει ταυτόχρονα σε ένα αρχείο.
Για να διοχετεύσετε την έξοδο μιας εντολής για να γράψετε, να την εκτυπώσετε στην οθόνη σας και να την αποθηκεύσετε σε ένα αρχείο, χρησιμοποιήστε την ακόλουθη σύνταξη: εντολή
|tee /path/to/ αρχείοΑυτό θα αντικαταστήσει οτιδήποτε στο αρχείο με την έξοδο της εντολής, ακριβώς όπως το & gt;χειριστής.
Για να διοχετεύσετε την έξοδο μιας εντολής για να γράψετε, εκτυπώστε την στην οθόνη σας και αποθηκεύστε την σε ένα αρχείο, αλλά προσθέστε το στο τέλος του αρχείου: εντολή
|tee -a /path/to/ αρχείοΑυτό θα προσαρτήσει την έξοδο στο τέλος του αρχείου, ακριβώς όπως το & gt; & gt;χειριστής.
Το κέλυφος bash περιλαμβάνει μερικούς επιπλέον, προηγμένους χειριστές που εκτελούν παρόμοιες λειτουργίες.Θα είναι ιδιαίτερα χρήσιμες αν γράφετε scripts bash.Ανατρέξτε στο κεφάλαιο Ανακατεύθυνση εισόδου / εξόδου στο Advanced Bash-Scripting Guide για περισσότερες πληροφορίες.