Senaraikan semua direktori dan urutkan mengikut saiz
Walaupun hari ruang memori cakera keras terhad kerana cakera keras untuk menyimpan data bersaiz besar hari ini tersedia dengan harga yang berpatutan. Walau bagaimanapun, jika anda merasakan bahawa anda tidak memerlukan cakera keras dengan kapasiti yang lebih besar dan cakera keras anda penuh, ini mungkin merupakan petunjuk bahawa anda mempunyai banyak data sampah yang tersimpan di sistem anda. Ini adalah kes saya dan saya perlu membersihkannya secara berkala. Saya lebih suka menghapus data mengikut ukuran jadi bermula dengan direktori terbesar di direktori rumah saya adalah langkah pertama.
Berikut adalah beberapa arahan bash yang saya gunakan untuk rutin pembersihan data saya:
Senaraikan semua direktori dan fail dengan ukuran yang berkaitan
Perintah ini hanya akan menyenaraikan fail dan direktori di direktori kerja semasa anda. Alih keluar pilihan untuk melihat hasil rekursif. -h bermaksud output yang boleh dibaca oleh manusia.
$ du -sh *
Senaraikan semua direktori dan urutkan mengikut saiz
Perintah sebelumnya tidak begitu berguna kerana tidak menyusun dan mencetak banyak fail yang tidak perlu yang kita tidak bimbangkan. Perintah linux berikut mencetak semua direktori dalam direktori kerja semasa, termasuk ukuran yang relevan dalam MB dan disusun dari yang terbesar hingga yang paling kecil.
$ du -m --max-depth 1 | sort -rn
Senaraikan TOP 10 mengikut direktori ukuran
Data pembersihan kami berakhir dengan membersihkan 10 direktori terbesar yang kami dapati. Oleh itu, kami mungkin hanya berminat dengan direktori terbesar. Untuk mencari yang mana, mari gunakan perintah sebelumnya dan sertakan kepala:
$ du -m --max-depth 1 | sort -rn | head -11
Senaraikan semua direktori dan urutkan mengikut skrip bash saiz
Dengan menggunakan perintah di atas kita dapat membuat skrip bash untuk menjadikan hidup kita lebih mudah. Skrip bash berikut akan menerima 2 argumen. Argumen pertama akan menjadi nama direktori di mana kita akan memulakan pencarian kita dan argumen kedua akan dibuat oleh sejumlah direktori yang harus dikeluarkan oleh skrip.
#!/bin/bash if [ $# != 2 ]; then echo "Incorrect number of arguments !" >&2 echo "USAGE: sortdirbysize [DIRECTORY] " fi du --block-size=1M --max-depth 1 $1 | sort -rn | head -$2
Contoh:
$ ./sort-dir-by-size.sh /home/linux 15