Как да намерите най-големите файлове в Linux

Как да намерите най-големите файлове в Linux

В Linux има няколко начина за намиране на най-големите файлове. Най-често използваният метод е използването на командата find.

Команда find

Командата find се използва за намиране на файлове, отговарящи на определени критерии. За да намерите най-големите файлове, можете да използвате следния синтаксис:

find . -type f -size +10M

Този синтаксис ще намери всички файлове в текущата директория и поддиректории, които са по-големи от 10 MB.

Ето подробно обяснение на всяка опция:

  • Директория .

Директорията . означава текущия директория. В този случай командата ще търси файлове в текущия директория.

  • Опция -type f

Опцията -type f означава, че се търсят файлове. В този случай командата ще игнорира директориите и ще търси само файлове.

  • Опция-size +10M

Опцията -size +10M означава, че файловете трябва да са по-големи от 10 MB. В този случай командата ще намери всички файлове в текущата директория, които са по-големи от 10 MB.

Така че, командата find . -type f -size +10M ще намери всички файлове в текущата директория, които са по-големи от 10 MB.

Можете също така да използвате командата find за намиране на най-големите файлове в определена директория или поддиректория. За това можете да използвате следния синтаксис:

find /home/user/videos -type f -size +10M

Този синтаксис ще намери всички файлове в директорията /home/user/videos, които са по-големи от 10 MB.

За да сортирате всички файлове и директории в текущата директория по размер, като започнете с най-големите, можете да използвате следния синтаксис:

find . -type f -exec du -h {} + | sort -rh

Сортиране на всички файлове в определена директория по размер:

find /път/до/директория -type f -exec du -h {} + | sort -rh

В тези команди:

  • find . търси в текущата директория (заменете . с пътя до директорията, ако е необходимо).
  • -type f избира само файлове, а не директории.
  • -exec du -h {} + изчислява размера на всеки файл в четим формат с du -h.
  • sort -rh сортира резултатите в низходящ ред (от най-голям към най-малък размер) и включва хуманно четим размер (например, “1.5G” за 1.5 гигабайта).

Този начин на сортиране ще ви позволи да видите най-големите файлове или директории в желаната директория. Ако искате да ги видите възходящ ред, просто използвайте sort -h вместо sort -rh.

Команда du

Командата du в Linux (Disk Usage) се използва за измерване на дисковото пространство, заето от файлове и директории.

За да намерите най-големите файлове, можете да използвате следния синтаксис:

du -h * | sort -n | tail -n 10

Този ред от команди в Linux използва комбинация от du, sort, и tail, за да покаже размера на десетте най-големи файлове или директории в текущата директория.

Да разгледаме какво прави всяка част от командата:

  • du -h *: Използва du за измерване на дисковото пространство на всички файлове и директории в текущата директория, и -h прави изхода четим за хората, т.е., в човешки формат (например, “1.5G” за 1.5 гигабайта).
  • sort -n: Сортира резултатите по числов ред (по размер). -n указва на sort, че да сортира като числа, а не като низове.
  • tail -n 10: Избира последните 10 реда от сортираните резултати. Тук, тъй като сме сортирали във възходящ ред (-n), tail ще избере последните 10 реда, които са най-големите.

Следователно, цялата команда ще ви покаже размера на 10-те най-големи файлове или директории в текущата директория.

Команда ls -lh

Командата ls -lh се използва за показване на списък на файловете и директориите с техните размери. За да намерите най-големите файлове, можете да използвате следния синтаксис:

ls -lh | sort -n | tail -n 10

Тази команда в Linux съчетава ls, sort и tail, за да покаже 10-те най-големи файлове или директории в текущата директория, сортирани по размер.

Да разгледаме какво прави всяка част от командата:

  • ls -lh: Използва ls за избор на файлове и директории в текущата директория и излиза с детайли, включително размера в човешки формат.
  • sort -n: Сортира резултатите по числов ред (по размер). -n указва на sort, че да сортира като числа, а не като низове.
  • tail -n 10: Избира последните 10 реда от сортираните резултати. Тъй като сме сортирали във възходящ ред (-n), tail ще избере последните 10 реда, които са най-големите.

Следователно, цялата команда ще ви покаже 10-те най-големи файлове или директории в текущата директория, сортирани по размер.

Ето табличен вид на някои от допълнителните опции за командите find, du и ls -lh:

Команда findОпция
-nameФилтрира резултатите по име.
-mtimeФилтрира резултатите по дата на промяна.
-ctimeФилтрира резултатите по дата на създаване.
-uidФилтрира резултатите по потребителски идентификатор.
-gidФилтрира резултатите по групов идентификатор.
-permФилтрира резултатите по права за достъп.
-linksФилтрира резултатите по броя на връзките.
-sizeФилтрира резултатите по размер.
-execИзпълнява команда за всеки резултат.

Команда duОписание
-hИзчислява размера в удобен за четене формат.
-sИзчислява размера на всички файлове в директорията и поддиректориите.
-aВключва директориите в резултата.
-bИзчислява размера в байти.
-kИзчислява размера в килобайта.
-MИзчислява размера в мегабайта.
-GИзчислява размера в гигабайта.
-TИзчислява размера в терабайта.

Команда ls -lhОпция
-lИзвежда списък на файловете с информация за права за достъп, размер, дата на промяна и т.н.
-hИзвежда размера в удобен за четене формат.
-rИзвежда списъка в обратен ред.
-tИзвежда списъка по дата на промяна.
-SИзвежда списъка по размер.

Тези допълнителни опции ви предоставят по-голяма гъвкавост и контрол върху начина, по който се изпълняват командите и каква информация показват. Можете да използвате тези опции в зависимост от конкретните си нужди при работа с файловата система.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:

Може да харесате още...