Unix находит средний размер файла

У меня есть каталог с тонны файлов, я хочу найти средний размер файлов этих файлов, так что что-то вроде ls, что-то, что соответствует среднему размеру файла всего этого?

Ответы

Ответ 2

Короткий, общий и рекурсивный вариант ответа Ernstsson:

find ./ -ls | awk '{sum += $7; n++;} END {print sum/n;}'

Или, например, если вы хотите помешать файлу выше 100 КБ от тушения среднего значения:

find ./ -size -100000c -ls | awk '{sum += $7; n++;} END {print sum/n;}'

Ответ 3

Используйте wc -c *, чтобы получить размер всех файлов и ls | wc -l, чтобы получить количество файлов. Затем просто разделите один на другой.

Ответ 4

du -sh. # дает общее пространство, используемое в каталоге

найти. -тип f | wc -l # подсчитывает количество файлов

разделите первую на вторую. Если вам нужен один лайнер, вот он:

echo $(( `du -sb | tr '.' ' '` / `find . -type f | wc -l` ))

Ответ 5

Они находят размер каталога и находят количество свободного места на диске, которое существует на вашем компьютере. Команда, которую вы использовали бы, чтобы найти размер каталога, - "du" . И чтобы найти свободное место на диске, вы можете использовать "df" .

Вся информация, представленная в этой статье, доступна на страницах man для du и df. Если вам скучно читать страницы руководства и вы хотите быстро выполнить свою работу, то эта статья для вас.

-

'du' - Поиск размера каталога

$ du

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

**$ du /home/david**

Приведенная выше команда даст вам размер каталога в каталоге /home/david

**$ du -h**

Эта команда дает вам лучший результат, чем стандартный. Параметр "-h" означает читаемый человеком формат. Таким образом, размеры файлов/каталогов на этот раз суффиктируются "k", если его килобайты и "M", если его мегабайты и "G", если его гигабайты.

**$ du -ah**

Эта команда будет отображать на своем выходе не только каталоги, но и все файлы, которые присутствуют в текущем каталоге. Обратите внимание, что "du" всегда учитывает все файлы и каталоги, указывая конечный размер в последней строке. Но '-a' отображает имена файлов вместе с именами каталогов на выходе. '-h' - это еще раз читаемый человеком формат.

**$ du -c**

Это дает вам общую сумму в качестве последней строки вывода. Поэтому, если ваш каталог занимает 30 МБ, последние 2 строки вывода будут

30M. 30M всего

Первая строка будет последней строкой по умолчанию для вывода "du" , указывающей общий размер каталога, а другая строка будет иметь тот же размер, за которым следует строка "total". Это полезно, если вы выполните эту команду вместе с командой grep, чтобы отобразить конечный общий размер каталога, как показано ниже.

**$ du -ch | grep total**

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

Примечание. Если вы не знакомы с трубами (что делает указанную выше команду), обратитесь к статье № 24. Также grep является одной из самых важных команд в Unix. Обратитесь к статье 25, чтобы узнать больше о grep.

**$ du -s**

Отображает сводку размера каталога. Это самый простой способ узнать общий размер текущего каталога.

**$ du -s**

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

**$ du --exculde=mp3**

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

  • 'df' - поиск свободного места на диске/использование диска

    $df

Введя приведенное выше, выводит таблицу, состоящую из 6 столбцов. Все столбцы очень легко понять. Помните, что столбцы "Размер", "Использовать" и "Использовать" используют килобайты в качестве единицы. Столбец "Использовать%" показывает использование в процентах, что также очень полезно.

**$ df -h**

Отображает тот же результат, что и предыдущая команда, но '-h' указывает на формат для чтения человеком. Следовательно, вместо килобайт в качестве единицы выход будет иметь "M" для мегабайт и "G" для гигабайт.

Большинство пользователей не используют другие параметры, которые могут быть переданы в 'df'. Поэтому я не буду обсуждать их.

В свою очередь, я покажу вам пример, который я использую на своей машине. Я фактически сохранил это как script с именем 'usage', так как часто использую его.

Пример:

У меня установлена ​​моя Linux на /dev/hda 1, и я также смонтировал разделы Windows (по умолчанию каждый раз, когда загружается Linux). Таким образом, по умолчанию "df" показывает мне использование диска как для Linux, так и для Windows. И меня интересует только дисковое использование разделов Linux. Это то, что я использую:

**$ df -h | grep /dev/hda1 | cut -c 41-43**

Эта команда отображает следующее на моей машине

45%

В основном эта команда делает "df" отображением дискового использования всех разделов, а затем извлекает строки с /dev/hda 1, так как меня это интересует. Затем он вырезает символы из 41-го по 43-й столбец, так как они являются столбцами, отображающими использование в%, и это то, что я хочу.

Есть еще несколько опций, которые можно использовать с 'du' и 'df'. Вы можете найти их на страницах руководства.