Πώς να αποκτήσετε το μέγεθος ενός καταλόγου στο Linux

How Get Size Directory Linux



Η γνώση του μεγέθους ενός καταλόγου στο Linux δεν είναι τόσο απλή όσο ακούγεται. Η εντολή ls -s θα εμφανίσει τα αρχεία και τους υποκαταλόγους με τα μεγέθη τους. Ωστόσο, τα μεγέθη (περίπου 4096 byte) που δίνονται για τους καταλόγους δεν είναι χρήση δίσκου. Το μέγεθος που εμφανίζεται για έναν κατάλογο είναι το μέγεθος των μεταδεδομένων του καταλόγου.

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







Θυμηθείτε, υπάρχει μόνο ένας κατάλογος σε έναν τόμο. Τα υπόλοιπα είναι υποκατάλογοι. Ο ριζικός κατάλογος δημιουργεί υπο-καταλόγους, οι οποίοι οδηγούν σε υπο-καταλόγους που μειώνονται. Ωστόσο, οι υποκατάλογοι συνήθως ονομάζονται απλά κατάλογοι. Και έτσι, υπάρχει μόνο ένα δέντρο καταλόγου.



Έτσι, το ls -s δεν είναι χρήσιμο για να λάβετε το μέγεθος ενός καταλόγου. Ποια εντολή τότε είναι χρήσιμη; - Η εντολή du. du σημαίνει Χρήση δίσκου. Εκτυπώνει τη χρήση του δίσκου του καταλόγου.



Αυτό το άρθρο εξηγεί τις διαφορετικές δυνατότητες της εντολής du στο Linux, η οποία παρέχει τους διαφορετικούς τρόπους προγραμματισμού για να γνωρίζουν τα μεγέθη των καταλόγων και των υποκαταλόγων τους. Το Bash είναι το κέλυφος που χρησιμοποιείται για τα δείγματα κώδικα αυτού του άρθρου.





Περιεχόμενο άρθρου

du χωρίς επιλογή ή επιχείρημα

Ο τρέχων κατάλογος εργασίας είναι ο κατάλογος στον οποίο εργάζεται αυτήν τη στιγμή ο χρήστης. Η προτροπή δείχνει κανονικά τον τρέχοντα κατάλογο εργασίας. Πληκτρολογώντας du χωρίς καμία επιλογή και επιχείρημα, όπως παρακάτω:



του

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

Κάθε διαδρομή του υποδέντρου αναπαρίσταται σε μια γραμμή, στην οθόνη. Κάθε γραμμή ξεκινά με το μέγεθος του καταλόγου (το οποίο είναι το επώνυμο στη διαδρομή). Η οθόνη μπορεί να είναι κάτι σαν:

8Το/dir1/dir2/dir3/dir4

12Το/dir1/dir2/dir3

16Το/dir1/dir2

είκοσιΤο/dir1

Παρατηρήστε ότι δεν είναι σαφές εάν το μέγεθος είναι σε bytes ή kilobytes ή megabytes ή gigabytes. Κιλομπάιτ του συμβόλου, Κ σημαίνει 1024 byte. Μεγαμπάιτ συμβόλου, Μ σημαίνει 1.048.576 byte. Gigabyte συμβόλου, G σημαίνει 1,073,741,824 byte. Για να επισημανθούν τα πολλαπλάσια, πρέπει να χρησιμοποιηθεί η επιλογή -h (διακόπτης), ως εξής:

του

Η οθόνη τότε θα μοιάζει με αυτό:

8,0 χιλ./dir1/dir2/dir3/dir4

12Κ/dir1/dir2/dir3

16K/dir1/dir2

20Κ./dir1

Όταν χρησιμοποιείται η επιλογή -h, τα μεγέθη λέγεται ότι είναι σε ευανάγνωστη μορφή.

Σημείωση: με την επιλογή –all, η εντολή du θα δώσει επίσης χρήση δίσκου για αρχεία. Ωστόσο, η χρήση του δίσκου για αρχεία δεν θα αντιμετωπιστεί σε αυτό το άρθρο.

Μέγεθος άλλων καταλόγων

Μια τυπική απόλυτη διαδρομή για έναν τόμο Linux είναι η ακόλουθη:

/Σπίτι/Γιάννης/λένε/dirTwo/dirThree/dirFour

Ο πρώτος / είναι ο ριζικός κατάλογος. Αυτός ο κατάλογος έχει άμεσους υπο-καταλόγους, συμπεριλαμβανομένου του αρχικού καταλόγου. Ο αρχικός κατάλογος έχει τον κατάλογο του χρήστη. Εάν το όνομα του χρήστη είναι John, τότε μπορεί να ονομάσει τον κατάλογο του χρήστη, John. Ο κατάλογος του χρήστη προσδιορίζεται από το ~. Έτσι, ο χρήστης μπορεί να χρησιμοποιήσει την εντολή cd ~ για να φτάσει στον κατάλογό του από οποιονδήποτε κατάλογο. Το dirOne είναι ένας κατάλογος που δημιουργήθηκε από τον χρήστη. Ο χρήστης μπορεί επίσης να δημιουργήσει άλλους καταλόγους σε αυτό το επίπεδο. Τα dirTwo, dirThree και dirFour είναι υποκατάλογοι στους προηγούμενους καταλόγους τους, που δημιουργήθηκαν από τον χρήστη.

Ο χρήστης μπορεί να γνωρίζει το μέγεθος οποιουδήποτε άλλου καταλόγου και των υποκαταλόγων του (υποδέντρο) από οποιονδήποτε κατάλογο, παρακάμπτοντας την απόλυτη διαδρομή ως όρισμα. Για παράδειγμα, εάν απαιτείται χρήση δίσκου,

/Σπίτι/Γιάννης/λένε/dirTwo

τότε η εντολή θα είναι:

του /Σπίτι/Γιάννης/λένε/dirTwo

ή

του ~/λένε/dirTwo

όπου ~ αντιπροσωπεύει τον κατάλογο του χρήστη.

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

Γιάννης@οικοδεσπότης:/πες $

σημαίνει ότι ο χρήστης βρίσκεται στον κατάλογο,/home/john/dirOne, τότε η ακόλουθη εντολή θα δώσει το ίδιο αποτέλεσμα με την παραπάνω εντολή:

του dirTwo

Οι διαδρομές θα ήταν ακόμα σχετικές. Για να εμφανίσετε τις ίδιες πληροφορίες για τον τρέχοντα κατάλογο, μην χρησιμοποιήσετε κανένα όρισμα ή χρησιμοποιήστε την τελεία.

Αυτό το σχήμα μπορεί να χρησιμοποιηθεί για να πάρει το μέγεθος μόνο ενός καταλόγου, του τελευταίου σε μια διαδρομή (προηγείται η διαδρομή). Είναι δυνατό να λάβετε το μέγεθος ενός καταλόγου στη μέση μιας διαδρομής - δείτε εξαίρεση = PATTERN παρακάτω.

Σύνολο

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

του --σύνολο

φαινομενικού μεγέθους

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

του --μετρικό μέγεθοςdirTwo

Μέγιστο-Βάθος

Με –max-deep = 0, το du εκτυπώνει το μέγεθος μόνο του τρέχοντος καταλόγου εργασίας. με du –max-deep = 1, το du εκτυπώνει το μέγεθος του τρέχοντος καταλόγου εργασίας και τα μεγέθη όλων των υπο-καταλόγων πρώτου επιπέδου. με –max-βάθος = 2, το du εκτυπώνει το μέγεθος του τρέχοντος καταλόγου εργασίας και τα μεγέθη όλων των υπο-καταλόγων πρώτου επιπέδου και όλων των υπο-καταλόγων δεύτερου επιπέδου. με –max-deep = 3, το du εκτυπώνει το μέγεθος του τρέχοντος καταλόγου εργασίας και όλους τους υπο-καταλόγους πρώτου επιπέδου, καθώς και όλους τους υποκαταλόγους δεύτερου επιπέδου και όλους τους υποκαταλόγους τρίτου επιπέδου. Αυτό συνεχίζεται με αυξανόμενη τιμή μέγιστου βάθους. Ένα παράδειγμα χρήσης του είναι:

του -μέγιστο βάθος=2

Η εντολή sudo

Ένας από τους καταλόγους με τους δικούς του υποκαταλόγους στον ριζικό κατάλογο είναι ο var. Εάν ο χρήστης πληκτρολογεί

του /όπου

και πατήσει Enter, θα συνειδητοποιήσει ότι αρνείται η άδεια για ορισμένους καταλόγους. Δηλαδή, δεν μπορεί να γνωρίζει τα μεγέθη ορισμένων καταλόγων. Η άδεια απορρίπτεται επειδή ο χρήστης δεν είναι ο υπερχρήστης. Ο υπερχρήστης έχει το προνόμιο να βλέπει τα μεγέθη (χρήση δίσκου) αυτών των καταλόγων. Έτσι, για να αποκτήσει ο χρήστης αυτό το προνόμιο, πρέπει να χρησιμοποιήσει την εντολή sudo ως εξής:

sudo του /όπου

Εάν το κέλυφος ζητήσει από τον χρήστη τον κωδικό πρόσβασής του, ο χρήστης πρέπει να πληκτρολογήσει τον κωδικό πρόσβασης και να πατήσει Enter. Με την εντολή sudo, ο απλός χρήστης (προγραμματιστής) μπορεί να δει τα μεγέθη όλων των καταλόγων στον κατάλογο var και παρόμοιους καταλόγους.

Εξαιρούνται οι καταχωρίσεις κατά μέγεθος

Η επιλογή –threshold = SIZE δεν επιτρέπει την καταχώριση καταλόγων των οποίων τα μεγέθη είναι μικρότερα από SIZE. Για το μονοπάτι,

/Σπίτι/Γιάννης/λένε/dirTwo/dirThree/dirFour

με την προτροπή στο[προστασία ηλεκτρονικού ταχυδρομείου]: ~ $, λοιπόν

του --κατώφλι= 12K dirOne

όπου 12K σημαίνει 12 kilobytes, δεν θα εμφανίσει τη γραμμή για οποιονδήποτε κατάλογο, η χρήση του δίσκου του οποίου είναι μικρότερη από 12K.

–Εξαίρεση = ΜΟΝΑΔΑ

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

Για να παραλείψετε τη γραμμή για τον τελευταίο κατάλογο, dirFour της διαδρομής

/Σπίτι/Γιάννης/λένε/dirTwo/dirThree/dirFour

η εντολή πρέπει να είναι:

του --αποκλείω= πες/dirTwo/dirThree/dirFour dirOne

Το αποτέλεσμα θα είναι κάτι σαν,

4.0K dirOne/dirTwo/dirThree

8.0K dirOne/dirTwo

12K dirOne

Σημείωση: τα μεγέθη δεν περιλαμβάνουν το μέγεθος του καταλόγου τελευταίου επιπέδου (dirFour) της διαδρομής.

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

του --αποκλείω= πες/dirTwo/dirThree dirOne

η έξοδος θα είναι κάτι σαν,

4.0K dirOne/dirTwo

8K dirOne

Σημείωση: τα μεγέθη έχουν εξαιρέσει τα μεγέθη των καταλόγων του κάτω μοχλού του δέντρου.

Σκεφτείτε ξανά, τον απόλυτο σύνδεσμο,

/Σπίτι/Γιάννης/λένε/dirTwo/dirThree/dirFour

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

του --αποκλείω=/Σπίτι/Γιάννης/λένε/dirTwo/ * /Σπίτι/Γιάννης/λένε/dirTwo

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

5,0 χιλ/Σπίτι/Γιάννης/λένε/dirTwo

συμπέρασμα

Η προσπάθεια να μάθετε το μέγεθος ενός καταλόγου με την εντολή ls -s είναι παραπλανητική. Με αυτό, λαμβάνονται μόνο τα μεταδεδομένα του καταλόγου. Για να γνωρίζετε τη χρήση του δίσκου ενός καταλόγου, πρέπει να χρησιμοποιήσετε την εντολή du. Όταν χρησιμοποιείται με την επιλογή -h, τα μεγέθη των καταλόγων είναι ευανάγνωστα. Το φαινόμενο μέγεθος μπορεί να επιτευχθεί χρησιμοποιώντας την επιλογή φαινομένου μεγέθους. Χωρίς καμία επιλογή και επιχείρημα, η εντολή du εμφανίζει απλώς τα μεγέθη όλων των υποκαταλόγων του τρέχοντος καταλόγου, συμπεριλαμβανομένου αυτού του τρέχοντος καταλόγου. Το επιχείρημα στο du είναι η διαδρομή, η οποία μπορεί να ξεκινήσει από τη ρίζα. Οι επιλογές και ορισμένες από τις τιμές τους καθορίζουν ακριβώς ποιοι κατάλογοι απευθύνονται. Η εντολή sudo δίνει στον συνηθισμένο χρήστη προνόμια υπερχρήστη από προεπιλογή.