Αρχική σελίδα » πως να » Πώς να αποθηκεύσετε την έξοδο μιας εντολής σε ένα αρχείο στο Bash (γνωστός και ως τερματικό Linux και macOS)

    Πώς να αποθηκεύσετε την έξοδο μιας εντολής σε ένα αρχείο στο Bash (γνωστός και ως τερματικό Linux και macOS)

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

    Αυτό λειτουργεί σε bash σε οποιοδήποτε λειτουργικό σύστημα, από το Linux και το MacOS στο περιβάλλον βασισμένο στο Ubuntu των Windows 10.

    Επιλογή 1: Ανακατεύθυνση εξόδου σε αρχείο μόνο

    Για να χρησιμοποιήσετε την ανακατεύθυνση bash, εκτελέστε μια εντολή, καθορίστε το > ή >> και, στη συνέχεια, να δώσετε τη διαδρομή ενός αρχείου στο οποίο θέλετε να ανακατευθύνεται η έξοδος.

    •  > ανακατευθύνει την έξοδο μιας εντολής σε ένα αρχείο, αντικαθιστώντας τα υπάρχοντα περιεχόμενα του αρχείου.
    •  >> ανακατευθύνει την έξοδο μιας εντολής σε ένα αρχείο, προσθέτοντας την έξοδο στα υπάρχοντα περιεχόμενα του αρχείου.

    Από τεχνική άποψη, αυτό ανακατευθύνει "stdout" -την τυπική έξοδο, η οποία είναι η οθόνη-σε ένα αρχείο.

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

    ls> / διαδρομή / προς / αρχείο

    Δεν χρειάζεται να καθορίσετε τη διαδρομή προς ένα υπάρχον αρχείο. Καθορίστε κάθε έγκυρη διαδρομή και bash θα δημιουργήσει ένα αρχείο σε εκείνη την τοποθεσία.

    Αν δείτε τα περιεχόμενα του αρχείου, θα δείτε το ls την έξοδο της εντολής. Για παράδειγμα, το Γάτα εντολή εκτυπώνει τα περιεχόμενα ενός αρχείου στο τερματικό:

    γάτα / διαδρομή / προς / αρχείο

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

    uname -a >> / διαδρομή / προς / αρχείο

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

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

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

    Επιλογή 2: Έξοδος εκτύπωσης κανονικά και ανακατεύθυνση σε αρχείο

    Ίσως δεν σας αρέσει η ανακατεύθυνση της εξόδου με το > ή >> καθώς δεν θα δείτε την έξοδο της εντολής στο τερματικό. Αυτό είναι το στόχος η εντολή είναι για. Η εντολή tee εκτυπώνει την είσοδο που λαμβάνει στην οθόνη και αποθηκεύει ταυτόχρονα σε ένα αρχείο.

    Για να διοχετεύσετε την έξοδο μιας εντολής στο στόχος, εκτυπώστε την στην οθόνη σας και αποθηκεύστε την σε ένα αρχείο, χρησιμοποιήστε την ακόλουθη σύνταξη:

    εντολή | tee / path / to / αρχείο

    Αυτό θα αντικαταστήσει οτιδήποτε στο αρχείο με την έξοδο της εντολής, όπως και το > χειριστής.

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

    εντολή | tee -a / path / to / αρχείο

    Αυτό θα προσαρτήσει την έξοδο στο τέλος του αρχείου, ακριβώς όπως το >> χειριστής.

    Το κέλυφος bash περιλαμβάνει μερικούς επιπλέον, προηγμένους χειριστές που εκτελούν παρόμοιες λειτουργίες. Θα είναι ιδιαίτερα χρήσιμο εάν γράφετε scripts bash. Ανατρέξτε στο κεφάλαιο Ανακατεύθυνση εισόδου / εξόδου στο Advanced Bash-Scripting Guide για περισσότερες πληροφορίες.