Πώς μπορώ να λάβω το μέγεθος ενός καταλόγου στη γραμμή εντολών;

Προσπάθησα να λάβω το μέγεθος ενός καταλόγου (που περιέχει καταλόγους και υποκαταλόγους) χρησιμοποιώντας την εντολή ls με την επιλογή l. Φαίνεται να δουλεύει για αρχεία (ls -l όνομα αρχείου), αλλά αν προσπαθήσω να πάρω το μέγεθος ενός καταλόγου (για παράδειγμα, ls -l /home), παίρνω μόνο 4096 bytes, αν και συνολικά είναι πολύ μεγαλύτερο.

Λύση

du -sh file_path

Επεξήγηση

  • Η εντολή du (disc usage) εκτιμά τη χρήση του χώρου file_path

  • Οι επιλογές -sh είναι (από την man du):

       -s, --summarize
              εμφανίζει μόνο ένα σύνολο για κάθε όρισμα
    
       -h, --human-readable
              εκτύπωση μεγεθών σε μορφή αναγνώσιμη από τον άνθρωπο (π.χ. 1K 234M 2G)

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

       -c, --total
              παράγει ένα μεγάλο σύνολο
Σχόλια (4)

Το "du" είναι ο φίλος σας. Αν θέλετε απλώς να μάθετε το συνολικό μέγεθος ενός καταλόγου, τότε μπείτε σε αυτόν και τρέξτε:

du -hs

Αν θέλετε επίσης να μάθετε ποιοι υπο-κατάλογοι καταλαμβάνουν πόσο χώρο στο δίσκο;! Θα μπορούσατε να επεκτείνετε αυτή την εντολή ως εξής:

du -h --max-depth=1 | sort -hr

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

Σχόλια (3)

Η εντολή du δείχνει τη χρήση του δίσκου από το αρχείο.

Η επιλογή -h εμφανίζει τα αποτελέσματα σε μορφή αναγνώσιμη από τον άνθρωπο (π.χ. 4k, 5M, 3G).

du -h (file name)
Σχόλια (0)