Поиск по сайту:

Найдите самые большие и самые маленькие каталоги и файлы в Linux

Если вас беспокоит дисковое пространство, вы должны знать, какие каталоги и файлы занимают больше дискового пространства, а какие — наименьшие. Это даст вам представление о том, как избавиться от ненужных каталогов и файлов, занимающих место на диске. Кроме того, вы можете сделать резервную копию или заархивировать их на внешние диски, чтобы освободить место. В этом кратком руководстве мы обсудим, как находить самые большие и самые маленькие каталоги и файлы в Linux и Unix-подобных операционных системах.

Найдите самые большие и самые маленькие каталоги и файлы в Linux

Сначала давайте посмотрим, как найти самые большие каталоги и файлы в нашей системе Linux.

1. Найдите самые большие каталоги и файлы в Linux и Unix.

Насколько я знаю, единой команды для поиска самых больших каталогов и файлов не существует. Однако для достижения этой задачи мы можем использовать некоторую комбинацию команд.

Чтобы узнать десять самых больших каталогов и файлов в текущем рабочем каталоге, просто запустите:

sudo du -a | sort -n -r | head -n 10

Пример вывода:

324793508 .
175393112 ./Soft_Backup
114384256 ./Soft_Backup/VHD's
76665704 ./Personal
58237276 ./Soft_Backup/OS Images
48053708 ./Soft_Backup/OS Images/Linux
32940784 ./Personal/Tutors
28189472 ./Downloads
26067640 ./Personal/Study
23741692 ./VirtualBox VMs

Где,

  • du: команда использования диска, определяющая использование файлового пространства.
  • -a: отображает все каталоги и файлы.
  • sort: сортировка строк текстовых файлов.
  • -n: сравнение по числовому значению строки.
  • -r: отменить результат сравнения.
  • head: вывести первую часть файлов.
  • -n 10: вывести первые 10.

Чтобы просмотреть приведенный выше результат в удобочитаемом формате (в КБ, МБ, ГБ и т. д.), просто добавьте параметр "h", как показано ниже.

sudo du -ah | sort -n -r | head -n 10

Как вы видите из приведенных выше результатов, мы перечислили все файлы и каталоги, а также их подкаталоги в текущем рабочем каталоге.

Чтобы отобразить самые большие каталоги и файлы определенного каталога, например /var, выполните:

sudo du /var -a | sort -n -r | head -n 10

Пример вывода:

9317388 /var
5159660 /var/cache
5129476 /var/cache/pacman
5129472 /var/cache/pacman/pkg
2304368 /var/lib
1979572 /var/lib/docker
1976628 /var/lib/docker/devicemapper
1976532 /var/lib/docker/devicemapper/devicemapper
1974172 /var/lib/docker/devicemapper/devicemapper/data
1853276 /var/log

Чтобы отобразить приведенные выше результаты в удобочитаемом формате, добавьте параметр "-h":

sudo du -ah /var | sort -n -r | head -n 10

Давайте выясним самые большие файлы в текущем рабочем каталоге и его подкаталогах:

sudo find -printf '%s %p\n'| sort -nr | head -10

Пример вывода:

14621343744 ./Soft_Backup/VHD's/openSUSE 42.1 Leap Desktop/openSUSE 42.1 Leap Desktop.vdi
13767896472 ./Downloads/3.0.6/eos-amd64-amd64/en/eos-eos3.0-amd64-amd64.161109-081728.en.img.xz.part
12878610432 ./VirtualBox VMs/Ubuntu 16.04 LTS Desktop/Ubuntu 16.04 LTS Desktop.vdi
12834570240 ./Soft_Backup/VHD's/Ubuntu 16.04 LTS Desktop/Ubuntu 16.04 LTS Desktop.vdi
9360637952 ./VirtualBox VMs/Fedora 24 Desktop/Fedora 24 Desktop.vdi
7785676800 ./Soft_Backup/VHD's/Ubuntu 14.04 LTS desktop/Ubuntu 14.04 LTS desktop.vdi
7523532800 ./Soft_Backup/VHD's/Fedora 23 desktop/Fedora 23 desktop.vdi
7223640064 ./Soft_Backup/VHD's/FreeBSD 10.3 MATE desktop/FreeBSD 10.3 MATE desktop.vdi
6510608384 ./Soft_Backup/VHD's/Windows 7/Windows 7.vdi
6323896320 ./Soft_Backup/VHD's/Fedora 23 desktop/.goutputstream-UT19IY

Кроме того, вы можете пропустить каталоги и отображать только файлы, добавив флаг "-type f" в приведенную выше команду:

sudo find -type f -printf '%s %p\n'| sort -nr | head -10

Пример вывода:

14621343744 ./Soft_Backup/VHD's/openSUSE 42.1 Leap Desktop/openSUSE 42.1 Leap Desktop.vdi
13767896472 ./Downloads/3.0.6/eos-amd64-amd64/en/eos-eos3.0-amd64-amd64.161109-081728.en.img.xz.part
12878610432 ./VirtualBox VMs/Ubuntu 16.04 LTS Desktop/Ubuntu 16.04 LTS Desktop.vdi
12834570240 ./Soft_Backup/VHD's/Ubuntu 16.04 LTS Desktop/Ubuntu 16.04 LTS Desktop.vdi
9360637952 ./VirtualBox VMs/Fedora 24 Desktop/Fedora 24 Desktop.vdi
7785676800 ./Soft_Backup/VHD's/Ubuntu 14.04 LTS desktop/Ubuntu 14.04 LTS desktop.vdi
7523532800 ./Soft_Backup/VHD's/Fedora 23 desktop/Fedora 23 desktop.vdi
7223640064 ./Soft_Backup/VHD's/FreeBSD 10.3 MATE desktop/FreeBSD 10.3 MATE desktop.vdi
6510608384 ./Soft_Backup/VHD's/Windows 7/Windows 7.vdi
6323896320 ./Soft_Backup/VHD's/Fedora 23 desktop/.goutputstream-UT19IY

Чтобы узнать самые большие файлы в определенном каталоге (например, /var) и его подкаталогах, просто укажите путь к каталогу, как показано ниже:

sudo find /var -printf '%s %p\n'| sort -nr | head -10

Теперь у вас есть базовое представление о том, как найти самые большие файлы и каталоги. Как насчет самых маленьких файлов и каталогов? Это также легко узнать.

2. Найдите самые маленькие каталоги и файлы в Linux и Unix.

Чтобы просмотреть десять самых маленьких каталогов в текущем рабочем каталоге, запустите:

du -S . | sort -n | head -10

Пример вывода:

4 ./.adobe
4 ./.adobe/Flash_Player
4 ./.adobe/Flash_Player/AssetCache
4 ./.alkasir/log
4 ./.alkasir/torpt
4 ./.alkasir/torpt/ptc
4 ./.bundle/cache
4 ./.bundle/cache/compact_index
4 ./.cache/chromium/Default
4 ./.cache/deepin

Чтобы просмотреть самые маленькие каталоги в определенном месте, например /var, выполните:

sudo du -S /var | sort -n | head -10

Чтобы просмотреть десять самых маленьких файлов только в текущем рабочем каталоге, запустите:

ls -lSr | head -10

Пример вывода:

total 116
-rw-r--r-- 1 sk users 62 Nov 5 12:15 Inter.txt
drwxr-xr-x 2 sk users 4096 May 9 2016 Wallpapers
drwxr-xr-x 5 sk users 4096 Nov 25 17:24 VirtualBox VMs
drwxr-xr-x 2 sk users 4096 May 11 2016 Videos
drwxr-xr-x 6 sk users 4096 Oct 24 17:32 usbkill
drwxr-xr-x 2 sk users 4096 May 11 2016 Templates
drwxr-xr-x 5 sk users 4096 May 4 2016 Soft_Backup
drwxr-xr-x 2 sk users 4096 Oct 25 12:32 snap
drwxr-xr-x 2 sk users 4096 May 11 2016 Public

Аналогично, чтобы просмотреть десять самых маленьких файлов только в определенном каталоге, например /var, просто запустите:

sudo ls -lSr /var | head -10

Рекомендуем прочитать:

  • Как узнать размер каталога в Linux

Теперь вы знаете, как найти самые большие и самые маленькие каталоги и файлы в ваших операционных системах Linux и Unix.

Ресурсы:

  • Ссылка 1
  • Ссылка 2

Статьи по данной тематике