Android

Πώς να πάρετε το μέγεθος ενός καταλόγου σε linux

Howto install hadoop on Ubuntu

Howto install hadoop on Ubuntu

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

Anonim

Κατά την καταχώριση των περιεχομένων ενός καταλόγου χρησιμοποιώντας την εντολή ls , ίσως έχετε παρατηρήσει ότι το μέγεθος των καταλόγων είναι σχεδόν πάντα 4096 byte (4 KB). Αυτό είναι το μέγεθος του χώρου στο δίσκο που χρησιμοποιείται για την αποθήκευση των μετα-πληροφοριών για τον κατάλογο, όχι τι περιέχει.

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

Λήψη του μεγέθους ενός καταλόγου

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

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

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

sudo du -sh /var

Η έξοδος θα φαίνεται κάπως έτσι:

85G /var

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

  • Η εντολή ξεκινά με το sudo επειδή τα περισσότερα αρχεία και οι κατάλογοι μέσα στον κατάλογο /var ανήκουν στον χρήστη root και δεν μπορούν να διαβαστούν από τους κανονικούς χρήστες. Εάν παραλείψετε sudo η εντολή du θα εκτυπώσει "du: δεν μπορεί να διαβάσει τον κατάλογο". s - Εμφάνιση μόνο του συνολικού μεγέθους του καθορισμένου καταλόγου, δεν εμφανίζουν σύνολα μεγέθους αρχείου για υποκαταλόγους. h - Μεγέθη εκτύπωσης σε μορφή αναγνώσιμη από άνθρωπο ( h ). /var - Η διαδρομή προς τον κατάλογο που θέλετε να πάρετε το μέγεθος.

Τι γίνεται αν θέλετε να εμφανίσετε τη χρήση του δίσκου από τους υποκαταλόγους πρώτου επιπέδου; Έχετε δύο επιλογές. Το πρώτο είναι να χρησιμοποιήσετε το σύμβολο αστερίσκου ( * ) όπως φαίνεται παρακάτω, πράγμα που σημαίνει ότι "ταιριάζει όλα όσα δεν ξεκινούν με μια περίοδο ( . )". Η επιλογή -c λέει στο du να εκτυπώσει ένα μεγάλο σύνολο όλων των μεγεθών:

sudo du -shc /var/*

24K /var/db 4.0K /var/empty 4.0K /var/games 77G /var/lib 4.0K /var/local 0 /var/lock 3.3G /var/log 0 /var/mail 4.0K /var/opt 0 /var/run 196K /var/spool 28K /var/tmp 85G total

Ένας άλλος τρόπος για να λάβετε μια αναφορά σχετικά με τη χρήση του δίσκου των --max-depth πρώτου επιπέδου είναι να χρησιμοποιήσετε την επιλογή --max-depth :

sudo du -h --max-depth=1 /var

77G /var/lib 24K /var/db 4.0K /var/empty 4.0K /var/local 4.0K /var/opt 196K /var/spool 4.0K /var/games 3.3G /var/log 5.0G /var/cache 28K /var/tmp 85G /var 85G total

Από προεπιλογή, η εντολή du δείχνει το χώρο στο δίσκο που χρησιμοποιείται από τον κατάλογο ή το αρχείο. Για να βρείτε το εμφανές μέγεθος ενός καταλόγου, χρησιμοποιήστε την επιλογή --apparent-size . Το "εμφανές μέγεθος" ενός αρχείου είναι πόσα δεδομένα είναι πραγματικά στο αρχείο.

sudo du -sh --apparent-size /var

Όταν μεταφέρετε έναν κατάλογο μέσω SCP, Rsync. Ή SFTP, η ποσότητα των δεδομένων που μεταφέρονται μέσω του δικτύου είναι το εμφανές μέγεθος των αρχείων. Αυτός είναι ο λόγος για τον οποίο το μέγεθος του χώρου στο δίσκο που χρησιμοποιείται στην πηγή όταν εμφανίζεται με du (χωρίς - --apparent-size ) δεν είναι το ίδιο με το μέγεθος του στόχου.

Η εντολή du μπορεί επίσης να συνδυαστεί με άλλες εντολές με σωλήνες.

Για παράδειγμα, για να εκτυπώσετε τους 5 μεγαλύτερους καταλόγους μέσα στον κατάλογο /var , θα διοχετεύσετε την έξοδο του du στην εντολή sort για να ταξινομήσετε τους καταλόγους με το μέγεθος τους και στη συνέχεια να διοχετεύσετε την έξοδο στην εντολή head που θα εκτυπώσει μόνο τους 5 πρώτους καταλόγους:

sudo du -h /var/ | sort -rh | head -5

85G /var/ 77G /var/lib 75G /var/lib/libvirt/images 75G /var/lib/libvirt 5.0G /var/cache/pacman/pkg

συμπέρασμα

Στο Linux, μπορείτε να πάρετε το μέγεθος ενός καταλόγου χρησιμοποιώντας την εντολή du .

du τερματικό δίσκο