Android

Πώς να περικόψετε (κενά) τα αρχεία στο linux

Windows XP - Επιλογή αρχείων και φακέλων

Windows XP - Επιλογή αρχείων και φακέλων

Πίνακας περιεχομένων:

Anonim

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

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

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

Shell Redirection

Η πιο εύκολη και πιο χρησιμοποιημένη μέθοδος για την περικοπή αρχείων είναι η χρήση του χειριστή ανακατεύθυνσης > κελύφους.

Η γενική μορφή της περικοπής αρχείων με χρήση ανακατεύθυνσης είναι:

: > filename

Ας καταρρίψουμε την εντολή:

  • Το : Το παχύ τελεία είναι true και δεν παράγει έξοδο. Ο χειριστής ανακατεύθυνσης > ανακατευθύνει την έξοδο της προηγούμενης εντολής στο δεδομένο αρχείο. filename , το αρχείο που θέλετε να περικόψετε.

Εάν υπάρχει το αρχείο, θα αποκοπεί στο μηδέν. Διαφορετικά, θα δημιουργηθεί το αρχείο.

Αντί για : μπορεί επίσης να χρησιμοποιήσει μια άλλη εντολή που δεν παράγει έξοδο.

Ακολουθεί ένα παράδειγμα χρήσης της εντολής cat για την εξαγωγή των περιεχομένων της /dev/null συσκευής, η οποία επιστρέφει μόνο ένα χαρακτήρα του τέλους του αρχείου:

cat /dev/null > filename

Μια άλλη εντολή που μπορεί να χρησιμοποιηθεί είναι echo . Η επιλογή -n λέει echo να μην προστεθεί μια νέα γραμμή:

echo -n > filename

Στα περισσότερα μοντέρνα κελύφη όπως το Bash ή το Zsh μπορείτε να παραλείψετε την εντολή πριν από το σύμβολο ανακατεύθυνσης και να χρησιμοποιήσετε:

> filename

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

sudo: > /var/log/syslog

bash: /var/log/syslog: Permission denied

Υπάρχουν πολλές λύσεις που επιτρέπουν την ανακατεύθυνση με το sudo . Η πρώτη επιλογή μπορεί να εκτελέσει ένα νέο κέλυφος με sudo και να εκτελέσει μια εντολή μέσα στο κέλυφος χρησιμοποιώντας τη σημαία -c :

sudo sh -c '> filename'

Μια άλλη επιλογή είναι να διοχετεύσετε την έξοδο στην εντολή tee , να αυξήσετε τα δικαιώματα του tee με το sudo και να γράψετε την κενή έξοδο σε ένα δεδομένο αρχείο:

: | sudo tee filename

truncate εντολής

truncate είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών που σας επιτρέπει να συρρικνώσετε ή να επεκτείνετε το μέγεθος ενός αρχείου σε ένα δεδομένο μέγεθος.

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

truncate -s 0 filename

Η επιλογή -s 0 θέτει το μέγεθος αρχείου στο μηδέν.

Για παράδειγμα, για να αδειάσετε το αρχείο καταγραφής πρόσβασης Nginx θα χρησιμοποιούσατε:

sudo truncate -s 0 /var/log/nginx/access.log

Αδειάστε όλα τα αρχεία καταγραφής

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

Η ακόλουθη εντολή θα αδειάσει τα αρχεία που λήγουν με ".log" κάτω από τον κατάλογο /var/log :

sudo truncate -s 0 /var/log/**/*.log

Μια καλύτερη επιλογή θα ήταν να περιστρέψετε, να συμπιέσετε και να αφαιρέσετε τα αρχεία καταγραφής με το εργαλείο logrotate .

συμπέρασμα

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

περικοπή τερματικού