Как найти максимальный размер файла

We’re just starting a UNIX class and are learning a variety of Bash commands. Our assignment involves performing various commands on a directory that has a number of folders under it as well.

I know how to list and count all the regular files from the root folder using:

find . -type l | wc -l

But I’d like to know where to go from there in order to find the largest file in the whole directory. I’ve seen somethings regarding a du command, but we haven’t learned that, so in the repertoire of things we’ve learned I assume we need to somehow connect it to the ls -t command.

And pardon me if my ‘lingo’ isn’t correct, I’m still getting used to it!

jww's user avatar

jww

96.4k90 gold badges407 silver badges876 bronze badges

asked Sep 20, 2012 at 23:15

Rekson's user avatar

2

Quote from this link-

If you want to find and print the top 10 largest files names (not
directories) in a particular directory and its sub directories

$ find . -type f -printf '%s %pn'|sort -nr|head

To restrict the search to the present directory use “-maxdepth 1” with
find.

$ find . -maxdepth 1 -printf '%s %pn'|sort -nr|head

And to print the top 10 largest “files and directories”:

$ du -a . | sort -nr | head

** Use “head -n X” instead of the only “head” above to print the top X largest files (in all the above examples)

user2297550's user avatar

user2297550

3,0922 gold badges27 silver badges39 bronze badges

answered Sep 20, 2012 at 23:21

tamsler's user avatar

tamslertamsler

1,2651 gold badge18 silver badges26 bronze badges

10

To find the top 25 files in the current directory and its subdirectories:

find . -type f -exec ls -al {} ; | sort -nr -k5 | head -n 25

This will output the top 25 files by sorting based on the size of the files via the “sort -nr -k5” piped command.

Same but with human-readable file sizes:

find . -type f -exec ls -alh {} ; | sort -hr -k5 | head -n 25

murla's user avatar

murla

952 silver badges10 bronze badges

answered May 29, 2014 at 3:42

xpros's user avatar

xprosxpros

2,10618 silver badges15 bronze badges

0

find . -type f | xargs ls -lS | head -n 1

outputs

-rw-r--r--  1 nneonneo  staff  9274991 Apr 11 02:29 ./devel/misc/test.out

If you just want the filename:

find . -type f | xargs ls -1S | head -n 1

This avoids using awk and allows you to use whatever flags you want in ls.

Caveat. Because xargs tries to avoid building overlong command lines, this might fail if you run it on a directory with a lot of files because ls ends up executing more than once. It’s not an insurmountable problem (you can collect the head -n 1 output from each ls invocation, and run ls -S again, looping until you have a single file), but it does mar this approach somewhat.

answered Sep 21, 2012 at 3:45

nneonneo's user avatar

nneonneonneonneo

170k35 gold badges305 silver badges377 bronze badges

3

There is no simple command available to find out the largest files/directories on a Linux/UNIX/BSD filesystem. However, combination of following three commands (using pipes) you can easily find out list of largest files:

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

If you want more human readable output try:

$ cd /path/to/some/var
$ du -hsx * | sort -rh | head -10

Where,

  • Var is the directory you wan to search
  • du command -h option : display sizes in human readable format (e.g.,
    1K, 234M, 2G).
  • du command -s option : show only a total for each
    argument (summary).
  • du command -x option : skip directories on
    different file systems.
  • sort command -r option : reverse the result
    of comparisons.
  • sort command -h option : compare human readable
    numbers. This is GNU sort specific option only.
  • head command -10 OR -n 10 option : show the first 10 lines.

answered May 26, 2014 at 9:34

Kalpana's user avatar

KalpanaKalpana

4911 gold badge7 silver badges21 bronze badges

2

This lists files recursively if they’re normal files, sorts by the 7th field (which is size in my find output; check yours), and shows just the first file.

find . -type f -ls | sort +7 | head -1

The first option to find is the start path for the recursive search. A -type of f searches for normal files. Note that if you try to parse this as a filename, you may fail if the filename contains spaces, newlines or other special characters. The options to sort also vary by operating system. I’m using FreeBSD.

A “better” but more complex and heavier solution would be to have find traverse the directories, but perhaps use stat to get the details about the file, then perhaps use awk to find the largest size. Note that the output of stat also depends on your operating system.

answered Sep 20, 2012 at 23:20

ghoti's user avatar

ghotighoti

45k8 gold badges65 silver badges104 bronze badges

7

This will find the largest file or folder in your present working directory:

ls -S /path/to/folder | head -1

To find the largest file in all sub-directories:

find /path/to/folder -type f -exec ls -s {} ; | sort -nr | awk 'NR==1 { $1=""; sub(/^ /, ""); print }'

answered Sep 20, 2012 at 23:21

Steve's user avatar

SteveSteve

49.8k13 gold badges89 silver badges101 bronze badges

2

On Solaris I use:

find . -type f -ls|sort -nr -k7|awk 'NR==1{print $7,$11}' #formatted

or

find . -type f -ls | sort -nrk7 | head -1 #unformatted

because anything else posted here didn’t work.
This will find the largest file in $PWD and subdirectories.

answered Oct 13, 2013 at 22:33

rindeal's user avatar

rindealrindeal

98311 silver badges16 bronze badges

0

Try the following one-liner (display top-20 biggest files):

ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20

or (human readable sizes):

ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20

Works fine under Linux/BSD/OSX in comparison to other answers, as find’s -printf option doesn’t exist on OSX/BSD and stat has different parameters depending on OS. However the second command to work on OSX/BSD properly (as sort doesn’t have -h), install sort from coreutils or remove -h from ls and use sort -nr instead.

So these aliases are useful to have in your rc files:

alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'

answered Mar 5, 2015 at 12:34

kenorb's user avatar

kenorbkenorb

153k85 gold badges674 silver badges737 bronze badges

2

Try following command :

find /your/path -printf "%k %pn" | sort -g -k 1,1 | awk '{if($1 > 500000) print $1/1024 "MB" " " $2 }' |tail -n 1 

This will print the largest file name and size and more than 500M. You can move the if($1 > 500000),and it will print the largest file in the directory.

Jad Chahine's user avatar

Jad Chahine

6,6998 gold badges37 silver badges59 bronze badges

answered Sep 21, 2012 at 3:23

zjhui's user avatar

zjhuizjhui

7691 gold badge8 silver badges21 bronze badges

du -aS /PATH/TO/folder | sort -rn | head -2 | tail -1

or

du -aS /PATH/TO/folder | sort -rn | awk 'NR==2'

answered Sep 20, 2012 at 23:33

Ansgar Wiechers's user avatar

Ansgar WiechersAnsgar Wiechers

191k23 gold badges245 silver badges320 bronze badges

To list the larger file in a folder

ls -sh /pathFolder | sort -rh | head -n 1

The output of ls -sh is a sized s and human h understandable view of the file size number.

You could use ls -shS /pathFolder | head -n 1. The bigger S from ls already order the list from the larger files to the smaller ones but the first result its the sum of all files in that folder. So if you want just to list the bigger file, one file, you need to head -n 2 and check at the “second line result” or use the first example with ls sort head.

answered Mar 8, 2018 at 1:14

José Pacheco's user avatar

This command works for me,

find /path/to/dir -type f -exec du -h '{}' + | sort -hr | head -10

Lists Top 10 files ordered by size in human-readable mode.

answered Jul 26, 2021 at 19:07

AATHITH RAJENDRAN's user avatar

This script simplifies finding largest files for further action.
I keep it in my ~/bin directory, and put ~/bin in my $PATH.

#!/usr/bin/env bash
# scriptname: above
# author: Jonathan D. Lettvin, 201401220235

# This finds files of size >= $1 (format ${count}[K|M|G|T], default 10G)
# using a reliable version-independent bash hash to relax find's -size syntax.
# Specifying size using 'T' for Terabytes is supported.
# Output size has units (K|M|G|T) in the left hand output column.

# Example:
#   ubuntu12.04$ above 1T
#   128T /proc/core

# http://stackoverflow.com/questions/1494178/how-to-define-hash-tables-in-bash
# Inspiration for hasch: thanks Adam Katz, Oct 18 2012 00:39
function hasch() { local hasch=`echo "$1" | cksum`; echo "${hasch//[!0-9]}"; }
function usage() { echo "Usage: $0 [{count}{k|K|m|M|g|G|t|T}"; exit 1; }
function arg1() {
    # Translate single arg (if present) into format usable by find.
    count=10; units=G;  # Default find -size argument to 10G.
    size=${count}${units}
    if [ -n "$1" ]; then
        for P in TT tT GG gG MM mM Kk kk; do xlat[`hasch ${P:0:1}`]="${P:1:1}"; done
        units=${xlat[`hasch ${1:(-1)}`]}; count=${1:0:(-1)}
        test -n "$units" || usage
        test -x $(echo "$count" | sed s/[0-9]//g) || usage
        if [ "$units" == "T" ]; then units="G"; let count=$count*1024; fi
        size=${count}${units}
    fi
}
function main() {
    sudo 
        find / -type f -size +$size -exec ls -lh {} ; 2>/dev/null | 
        awk '{ N=$5; fn=$9; for(i=10;i<=NF;i++){fn=fn" "$i};print N " " fn }'
}

arg1 $1
main $size

answered Jan 22, 2014 at 7:41

jlettvin's user avatar

jlettvinjlettvin

1,1017 silver badges13 bronze badges

That is quite simpler way to do it:

ls -l | tr -s " " " " | cut -d " " -f 5,9 | sort -n -r | head -n 1***

And you’ll get this: 8445 examples.desktop

Daniel Serodio's user avatar

answered Mar 14, 2014 at 7:40

Andrii Kovalchuk's user avatar

Andrii KovalchukAndrii Kovalchuk

4,2132 gold badges35 silver badges31 bronze badges

1

Linux Solution: For example, you want to see all files/folder list of your home (/) directory according to file/folder size (Descending order).

sudo du -xm / | sort -rn | more

answered Mar 3, 2017 at 21:05

Monir's user avatar

MonirMonir

1,36213 silver badges16 bronze badges

ls -alR|awk '{ if ($5 > max) {max=$5;ff=$9}} END {print max "t" ff;}'

answered Jan 11, 2019 at 16:34

Borislav Markov's user avatar

Kindly run below one liner with your required-path. as of now i am running for /var/log/ location

 (sudo  du -a /var/log/ |sort -nr|head -n20 |awk '{print $NF}'|while read l ;do du -csh $l|grep -vi total;done ) 2> /dev/null

answered Oct 27, 2022 at 15:31

linux.cnf's user avatar

linux.cnflinux.cnf

4936 silver badges7 bronze badges

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

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

1. GDMap

Несмотря на то, что графических утилит есть около десятка, все они мне не очень нравятся. Например в Gnome можно использовать GDMap, а в KDE – fileslight. Обе утилиты сканируют файловую систему и выводят все файлы в виде диаграммы. Размер блока зависит от размера файла. Чем больше файл или папка, тем больше блок. Для установки GDMap в Ubuntu выполните:

sudo apt install gdmap

Затем запустите утилиту из главного меню. По умолчанию она отображает домашнюю папку. Здесь можно оценить, какие файлы самые увесистые.

2. Утилита ncdu

Это псевдографическая утилита, которая работает в терминале Linux. Она отображает список файлов и директорий по объёму и, что самое интересное, тут же позволяет удалять ненужные файлы. Для установки утилиты выполните:

sudo apt install ncdu

Затем запустите утилиту, передав ей в качестве параметра папку, которую надо просканировать. Можно проверить ту же домашнюю папку:

ncdu /home

У утилиты очень простое управление. Для перемещения по списку используйте кнопки со стрелками вверх и вниз, для открытия папки – клавишу Enter, а для удаления файла – кнопку d. Также можно использовать для перемещения кнопки в Vim стиле – h, j, k, l.

3. Утилита du

Если у вас нет возможности устанавливать новые утилиты, может помочь установленная по умолчанию во всех дистрибутивах утилита du. С помощью следующей команды вы можете вывести 20 самых больших файлов и папок в нужной папке, для примера снова возьмём домашнюю папку:

sudo du -a /home/ | sort -n -r | head -n 20

Мы не можем использовать опцию -h для вывода размера в читабельном формате, потому что тогда не будет работать сортировка.

4. Утилита find

С помощью команды find вы тоже можете искать большие файлы Linux. Для этого используйте опцию -size. Например, давайте найдём файлы, которые больше 500 мегабайтов в той же домашней папке:

sudo find /home -xdev -type f -size +500M

Можно пойти ещё дальше – вывести размер этих файлов и отсортировать их по размеру:

find / -xdev -type f -size +100M -exec du -sh {} ';' | sort -rh

Самые большие файлы Linux будут сверху, а более мелкие – ниже.

Выводы

В этой небольшой статье мы разобрались, как выполняется поиск больших файлов Linux. После того, как вы их нашли, остаётся выбрать ненужные и удалить, если подобное происходит на сервере, то, обычно, это логи различных сервисов или кэш. Обратите внимание, что после удаления файлов место в файловой системе может и не освободится. Для полного освобождения места следует перезагрузить компьютер. Это довольно частая проблема на серверах и VPS.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Поиск больших файлов в Linux

Дисковое пространство не вечно. Рано или поздно приходит момент, когда его катастрофически не хватает. Эффективный способ это исправить — найти файлы и директории, которые занимают больше всего места.

Рассмотрим, как это сделать в Linux с использованием команд find и du.

Поиск больших файлов командой find

Простой поиск

Команда find имеет опцию -size, которая позволяет указать размер файлов для поиска.

Найдем файлы, которые занимают больше 1Gb:

find . -mount -type f -size +1G 2>/dev/null
  • Символ точка . после самой команды find, означает, что поиск нужно вести в текущей директории. Вместо точки вы можете указать, например, корневой раздел / или путь до любой другой директории.
  • -mount означает, что в процессе поиска не нужно переходить на другие файловые системы.
  • -type f означает, что мы ищем файлы.
  • -size +1G означает, что нужно найти файлы, размер которых превышает 1Gb. Размер можно указать в различных форматах:
    • b — блоки размером 512 байт. Числом указывается количество блоков.
    • c — в байтах. Например: -size +128с
    • w — в двухбайтовых словах
    • k — в килобайтах
    • M — в мегабайтах
    • G — в гигабайтах
  • 2>/dev/null используется, чтобы не показывать ошибки (например, если нет доступа к файлу).

В результате выполнения команды будет выведен список файлов без какой-либо дополнительной информации.
Команда find

Вывод подробной информации

Добавим в вывод информацию о каждом файле и отсортируем список по размеру. Выполняем команду

find . -mount -type f -size +512M -print 2>/dev/null | xargs -r -d 'n' ls -lh | sort -k5,5 -h -r

команда find xargs

Данная команда состоит из трех частей:

  • Команда find ищет файлы, которые имеют размер больше 512 мегабайт.
  • Результирующий список файлов передается команде xargs, которая, в свою очередь, запускает команду ls -lh над этим списком файлов. В результате получается таблица с файлами и информацией о файлах.

    Опция -r, команды xarg, используется для того, чтобы не запускать команду ls, если команда find вернула пустой результат (не нашла файлов). Вместо -r можно использовать длинную запись — опцию –no-run-if-empty
    Опция -d ’n’ используется, чтобы разделять список файлов только по символу новой строки (по n). А у нас так и есть — каждый файл на новой строке. Иначе неправильно будут обработаны файлы, в названии которых содержится пробел, так как по умолчанию команда xarg в качестве разделителя использует одновременно пробел, табуляцию или символ новой строки.

    Примечание: Для BSD-систем вместо -d ’n’ нужно использовать опцию −0, а у команды find вместо -print использовать -print0. Пример: find . -mount -type f -size +512M -print0 2>/dev/null | xargs -0 ls -lh | sort -k5,5 -h -r

  • Затем результат команды ls передается команде sort, которая выполняет сортировку списка (таблицы) по пятой колонке — 5-я колонка содержит размеры файлов.
    Ключ -h означает, что результат нужно вывести в удобно-читаемом виде (human-readable).
    Ключ -r означает, что сортировку нужно выполнять по убыванию (reverse).

Поиск больших файлов и директорий командой du

Команда du используется для вывода размеров файлов и директорий в Linux. Ее можно использовать для поиска больших файлов и директорий. Для этого выполняется команда du и результат сортируется по размеру. Таким образом можно увидеть, кто занимает больше всего места на диске.

Найдем пять самых больших файлов и директорий:

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

команда du размеры файлов и директорий

  • Символ . указывает путь и означает текущую директорию. Для поиска в другой директории укажите вместо точки ее путь.
  • Опции -ahx означают:
    a — искать и файлы и директории;
    h — выводить информацию в удобно-читаемом формате;
    x — не выполнять поиск на других файловых системах.
  • sort -rh выполняет сортировку результата.
  • head −5 выводит только пять первых результатов.

Лайков: +5

Войдите, чтобы ставить лайкимне нравится

Материалы по теме:

  • Основы работы в командной строке Linux
  • Команда find: широкие возможности для поиска файлов в Linux
  • Несколько полезных команд Linux
  • Сравнение файлов в Linux (команда diff)
  • Утилита tree — просмотр дерева директорий в командной строке
  • Disk Usage Analyzer (Baobab) — анализатор использования дисков

Смотрите также

  • Как распаковать tar bz2 xz gz архивы в Linux
  • Структура каталогов (папок) файловой системы Linux
  • Символические и жесткие ссылки в Linux. Команда ln
  • Как определить раздел, на который установлен Linux (определить корневой раздел)
  • Права доступа к файлам в Linux
  • Размеры папок и дисков в Linux. Команды df и du
  • Firefox 13, что нового
  • tail
  • Запуск Ubuntu без установки на компьютер (LiveCD)
  • Создаем таблицу разделов и форматируем жесткий диск в Ubuntu

Как быстро найти все файлы большого размера в Windows – инструкцияПриветствую!

В данном материале будет подробно рассмотрено, как без какого-либо стороннего программного обеспечения осуществлять поиск больших файлов в операционной системе семейства Windows.

Инструкция универсальна, она подойдёт как для Windows Vista, так и всех последующих версий, включая последнюю на сегодняшний день – Windows 10.

Image

Инструкция по поиску файлов большого размера в Виндовс

Довольно часто жёсткий диск (или SSD) чем-то занят и нужно найти и узнать, что это за файлы, которые «отъедают» львиную долю. Можно, конечно, установить приложение, которое покажет, какие именно «объёмные» файлы занимают место, а можно воспользоваться встроенным в систему поиском, что существенно быстрее.

Давайте посмотрим, как осуществить необходимый нам поиск файлов в Windows.

Image

  1. Для этого нам необходимо открыть окно файлового менеджера (проводник Windows). Это можно сделать самыми различными способами. Мы воспользуемся ярлыком, что расположен на панели задач.

    Открываем окно файлового менеджера в Windows

  2. В окне проводника необходимо перейти в диск или папку, в которой необходимо осуществить поиск файлов большого размера. В нашем примере это будет корень диска «D». Поиск будет произведён как по файлам в корне диска, так и всех имеющихся подпапках.

    Открыв интересующее расположение, необходимо кликнуть по строке поиска, что расположена в правом верхнему углу окна.

    Строка ввода для поиска файлов и папок в Windows

    В этот момент, к примеру, в Windows 7 будет отображено выпадающее меню, где можно задать размер искомых файлов.

    Image

    А в Windows 10 чуть левее отобразится меню «Средства поиска», где присутствует аналогичный функционал.

  3. Однако мы воспользуемся универсальной командой, которая работает во всех версиях Windows.
    • Введя команду в поисковую строку:

      будет произведён поиск и отображение файлов, что имеют размер более 700 мегабайт.

    • Если же необходимо задать диапазон, то вот пример соответствующей команды:

      в этом случае будет произведён поиск файлов в диапазоне от 700 мегабайт, до 3 гигабайт.

    Вводим команду и осуществляем поиск файлов крупного размера в Windows

    Руководствуясь приведёнными примерами, вы можете указать желаемые размеры поиска файлов конкретно в вашем случае.

  4. По окончании поиска все найденные файлы будут отображены, и вы сможете осуществить дальнейшие запланированные манипуляции.

Видеоинструкция

Как мы видим, искать файлы большого объёма в Windows достаточно просто. Встроенный в Виндовс поиск по файлам и папкам и ввод простых команд этому весьма и весьма способствует.

Пожертвование сайту IT-Actual.ru (cбор пожертвований осуществляется через сервис «ЮMoney»)

На что пойдут пожертвования реквизиты других платёжных систем

Привет.

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

Номер банковской карты: 5331 5721 0220 5546
Кошелёк ЮMoney: 410015361853797
Кошелёк WebMoney: Z812646225287
PayPal: paypal@it-actual.ru
BitCoin: 1DZUZnSdcN6F4YKhf4BcArfQK8vQaRiA93

Оказавшие помощь:
Сергей И. – 500руб
<аноним> – 468руб
<аноним> – 294руб
Мария М. – 300руб
Валерий С. – 420руб
<аноним> – 600руб
Полина В. – 240руб

Деньги пойдут на оплату хостинга, продление домена, администрирование и развитие ресурса. Спасибо.
С уважением, создатель сайта IT-Actual.ru

Со временем, в процессе работы, различные файлы могут занимать огромное количество пространства в памяти компьютера. Вы можете удалить все программы и очевидные файлы, которые занимают много пространства, но памяти может не прибавиться.

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

Вступайте в наш чат. В нем мы помогаем друг другу и обсуждаем новости из IT сферы.

Больше всего вреда для свободного пространства приносят большие файлы, которые весят от 1 ГБ. Часто, эти файлы даже не нужны в процессе работы, это могут быть просто установщики или старые видео.

Давайте попробуем найти на нашем компьютере эти файлы, причем средствами Windows, без сторонних программ.

Как найти большие файлы на Windows, которые заняли всю память. Без сторонних программ

Ищем большие файлы

Зайдите в “проводник”, выберите директорию, где нужно найти файлы. К примеру: Мой компьютер, Диск C, Диск D. Жмете на строку поиска справа, и вводите следующую команду:

  • размер:гигантский – чтобы найти все файлы, размером более 1 ГБ
  • размер:большой – чтобы найти файлы, которые весят более 100 МБ

Жмем Enter и ждем результатов поиска.

Как найти большие файлы на Windows, которые заняли всю память. Без сторонних программ

Кроме этого, можно поставить свою цифру мегабайт для поиска:

размер:>500МБ – число мегабайт можно менять на свое.

Таким образом, ни один файл от вас не скроется. Также можно вручную проанализировать занятое пространство.

Анализируем занятое пространство

Заходим в параметры -> система -> память. И жмем “показать больше категорий”.

Как найти большие файлы на Windows, которые заняли всю память. Без сторонних программ

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

Как найти большие файлы на Windows, которые заняли всю память. Без сторонних программ

Добавить комментарий