Android

Cari fail besar di linux

Поиск файлов в Linux и Unix — find, grep, ack, ripgrep

Поиск файлов в Linux и Unix — find, grep, ack, ripgrep

Isi kandungan:

Anonim

Dari masa ke masa, pemacu cakera anda mungkin akan berantakan dengan banyak fail yang tidak diperlukan dengan mengambil sejumlah besar ruang cakera. Biasanya, sistem Linux kehabisan ruang cakera disebabkan oleh log besar atau fail sandaran.

Tutorial ini menerangkan bagaimana untuk mencari fail dan direktori terbesar dalam sistem Linux menggunakan arahan find dan du .

Cari Fail Besar Menggunakan Perintah find

Perintah find adalah salah satu alat yang paling berkuasa dalam sistem pentadbir sistem Linux. Ia membolehkan anda mencari fail dan direktori berdasarkan kriteria yang berbeza termasuk saiz fail.

Sebagai contoh, jika ingin mencari fail dengan saiz lebih besar daripada 100MB, dalam direktori kerja semasa anda akan menggunakan perintah berikut:

sudo find. -xdev -type f -size +100M Gantikan . dengan laluan ke direktori di mana anda ingin mencari fail terbesar.

Output akan menunjukkan senarai fail tanpa sebarang maklumat tambahan.

/var/lib/libvirt/images/centos-7-desktop_default.img /var/lib/libvirt/images/bionic64_default.img /var/lib/libvirt/images/win10.qcow2 /var/lib/libvirt/images/debian-9_default.img /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img /var/lib/libvirt/images/centos-7_default.img

Perintah find juga boleh digunakan dalam kombinasi dengan alat lain seperti ls atau sort untuk melaksanakan operasi pada fail tersebut.

Dalam contoh di bawah, kita lulus output arahan find untuk ls yang akan mencetak saiz setiap fail yang dijumpai dan kemudian paip yang output ke perintah jenis untuk menyusunnya berdasarkan lajur ke-5 yang merupakan saiz fail.

find. -xdev -type f -size +100M -print | xargs ls -lh | sort -k5, 5 -h -r

Output akan kelihatan seperti ini:

-rw------- 1 root root 40967M Jan 5 14:12 /var/lib/libvirt/images/win10.qcow2 -rw------- 1 root root 3725M Jan 7 22:12 /var/lib/libvirt/images/debian-9_default.img -rw------- 1 root root 1524M Dec 30 07:46 /var/lib/libvirt/images/centos-7-desktop_default.img -rw------- 1 root root 999M Jan 5 14:43 /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img -rw------- 1 root root 562M Dec 31 07:38 /var/lib/libvirt/images/centos-7_default.img -rw------- 1 root root 378M Jan 7 22:26 /var/lib/libvirt/images/bionic64_default.img

Sekiranya output mengandungi banyak baris maklumat, anda boleh menggunakan arahan head untuk mencetak hanya 10 baris pertama:

find. -xdev -type f -size +100M -print | xargs ls -lh | sort -k5, 5 -h -r | head

Mari kita putuskan perintah:

  • find. -xdev -type f -size +100M -print find. -xdev -type f -size +100M -print - cari hanya untuk fail ( -type f ) dalam direktori kerja semasa ( . ), lebih besar daripada 100MB ( -size +100M ), jangan turun direktori pada fail sistem lain ( -xdev ) dan cetak nama fail penuh pada output standard, diikuti dengan baris baru ( -print ). xargs ls -lh - output arahan find disalurkan ke xargs yang melaksanakan arahan ls -lh yang akan mencetak output dalam format panjang yang boleh dibaca oleh manusia. sort -k5, 5 -h -r - baris semakan berdasarkan lajur ke-5 ( -k5, 5 ), bandingkan nilai dalam format yang boleh dibaca manusia ( -h ) dan sebaliknya hasilnya ( -r ). head : cetak hanya 10 baris pertama output paip.

Perintah find datang dengan banyak pilihan yang berkuasa. Sebagai contoh, anda boleh mencari fail besar yang lebih tua dari x hari, fail besar dengan sambungan tertentu atau fail besar yang tergolong dalam pengguna tertentu.

Cari Fail Besar dan Direktori Menggunakan du Command

Perintah du digunakan untuk menganggarkan penggunaan ruang fail dan ia amat berguna untuk mencari direktori dan fail yang mengambil jumlah ruang cakera yang besar.

Perintah berikut akan mencetak fail dan direktori terbesar:

du -ahx. | sort -rh | head -5

Lajur pertama termasuk saiz fail dan yang kedua nama fail:

55G. 24G./.vagrant.d/boxes 24G./.vagrant.d 13G./Projects 5.2G./.minikube

Penjelasan arahan:

  • du -ahx. : anggaran penggunaan ruang cakera dalam direktori kerja semasa ( . ), mengira kedua-dua fail dan direktori ( a ), mencetak saiz dalam format yang boleh dibaca manusia ( h ) dan melangkau direktori pada sistem fail berlainan ( x ). sort -rh : garis semacam dengan membandingkan nilai dalam format yang boleh dibaca manusia ( -h ) dan sebaliknya hasilnya ( -r ). head -5 : cetak hanya 5 baris pertama output pipa.

Perintah du termasuk pilihan lain yang boleh anda gunakan untuk memperbaiki output ruang cakera.

Kesimpulannya

Mencari fail besar sangat berguna apabila cakera anda penuh dan anda mahu membebaskannya.

Sekarang bahawa anda telah menemui fail terbesar pada sistem anda, anda mungkin mahu membaca panduan kami tentang Cara Hapus Fail dan Direktori Menggunakan Talian Perintah Linux.

cari terminal cakera