Τα μεταδεδομένα είναι δεδομένα σχετικά με δεδομένα. Το φαινόμενο μέγεθος είναι το μέγεθος των δεδομένων που έχουν σημασία για τον απλό χρήστη του υπολογιστή. Το περιεχόμενο (κείμενο) των επιστολών του χρήστη, των εικόνων, των βίντεο κ.λπ., αποτελούν το φαινομενικό μέγεθος. Αυτά τα δεδομένα δεν διατηρούνται αυθαίρετα στον υπολογιστή. Τα φαινόμενα μεγέθους δεδομένων πρέπει να διατηρούνται υπό έλεγχο. Πρέπει να είναι αναγνωρίσιμο. Πρέπει να είναι πλήρης. Υπάρχουν άλλες απαιτήσεις για αυτό. Απαιτούνται κάποια επιπλέον δεδομένα για να επιτευχθούν αυτές οι επιπλέον απαιτήσεις και αυτά τα επιπλέον δεδομένα είναι τα μεταδεδομένα.
Θυμηθείτε, υπάρχει μόνο ένας κατάλογος σε έναν τόμο. Τα υπόλοιπα είναι υποκατάλογοι. Ο ριζικός κατάλογος δημιουργεί υπο-καταλόγους, οι οποίοι οδηγούν σε υπο-καταλόγους που μειώνονται. Ωστόσο, οι υποκατάλογοι συνήθως ονομάζονται απλά κατάλογοι. Και έτσι, υπάρχει μόνο ένα δέντρο καταλόγου.
Έτσι, το ls -s δεν είναι χρήσιμο για να λάβετε το μέγεθος ενός καταλόγου. Ποια εντολή τότε είναι χρήσιμη; - Η εντολή du. du σημαίνει Χρήση δίσκου. Εκτυπώνει τη χρήση του δίσκου του καταλόγου.
Αυτό το άρθρο εξηγεί τις διαφορετικές δυνατότητες της εντολής du στο Linux, η οποία παρέχει τους διαφορετικούς τρόπους προγραμματισμού για να γνωρίζουν τα μεγέθη των καταλόγων και των υποκαταλόγων τους. Το Bash είναι το κέλυφος που χρησιμοποιείται για τα δείγματα κώδικα αυτού του άρθρου.
Περιεχόμενο άρθρου
- du χωρίς επιλογή ή επιχείρημα
- Μέγεθος άλλων καταλόγων
- φαινομενικού μεγέθους
- Η εντολή sudo
- Εξαιρούνται οι καταχωρίσεις κατά μέγεθος
- εξαιρώ = ΜΟΝΑΔΑ
- συμπέρασμα
du χωρίς επιλογή ή επιχείρημα
Ο τρέχων κατάλογος εργασίας είναι ο κατάλογος στον οποίο εργάζεται αυτήν τη στιγμή ο χρήστης. Η προτροπή δείχνει κανονικά τον τρέχοντα κατάλογο εργασίας. Πληκτρολογώντας du χωρίς καμία επιλογή και επιχείρημα, όπως παρακάτω:
του
και στη συνέχεια πατώντας το πλήκτρο Enter θα εμφανιστεί η χρήση του δίσκου για όλους τους υπο-καταλόγους του τρέχοντος καταλόγου εργασίας. Θα εμφανίσει αυτές τις πληροφορίες για το υποδέντρο του τρέχοντος καταλόγου εργασίας. Μια κουκκίδα στην οθόνη αντιπροσωπεύει τον τρέχοντα κατάλογο εργασίας.
Κάθε διαδρομή του υποδέντρου αναπαρίσταται σε μια γραμμή, στην οθόνη. Κάθε γραμμή ξεκινά με το μέγεθος του καταλόγου (το οποίο είναι το επώνυμο στη διαδρομή). Η οθόνη μπορεί να είναι κάτι σαν:
8Το/dir1/dir2/dir3/dir412Το/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/dir412Κ/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/dirThree8.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 δίνει στον συνηθισμένο χρήστη προνόμια υπερχρήστη από προεπιλογή.