Узнаем размер папки в linux

Синтаксис

Параметры

Параметр Описание
/b Соответствует шаблону текста, если он находится в начале строки.
/e Соответствует шаблону текста, если он находится в конце строки.
/l Обрабатывает строки поиска буквально.
/r Обрабатывает строки поиска в виде регулярных выражений. Это параметр по умолчанию.
/s Выполняет поиск в текущем каталоге и во всех подкаталогах.
/i Игнорирует регистр символов при поиске строки.
/x Выводит строки, которые точно соответствуют друг другу.
/v Выводит только те строки, которые не содержат совпадений.
/n Выводит номер строки каждой соответствующей строки.
/m Печатает только имя файла, если файл содержит совпадение.
/o Выводит смещение символов перед каждой совпадающей строкой.
/p Пропускает файлы с непечатаемыми символами.
«/OFF» Не пропускает файлы с установленным атрибутом offline.
ключа Возвращает список файлов из указанного файла.
/c: Использует указанный текст в качестве литеральной строки поиска.
/g Возвращает строки поиска из указанного файла.
/d Выполняет поиск в указанном списке каталогов. Каждый каталог должен быть отделен точкой с запятой (например,;) .
Задает атрибуты цвета с двумя шестнадцатеричными цифрами. Введите дополнительные сведения.
Задает текст для поиска в файле filename. Обязательный элемент.
Указывает расположение и файл или файлы для поиска. Требуется по крайней мере одно имя файла.
/? Отображает справку в командной строке.

Комментарии

  • Все параметры командной строки findstr должны предшествовать строкам и именам файлов в строке команды.

  • Для поиска шаблонов текста в регулярных выражениях используются как литеральные символы, так и мета-символы, а не точные строки символов.

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

    • Мета-символ — это символ с особым значением (оператор или разделитель) в синтаксисе регулярных выражений.

      Допустимые мета-символы:

      Мета-символ Значение
      Подстановочный знак — любой символ
      Повтор — ноль или более вхождений предыдущего символа или класса.
      Начальное расположение строки — начало строки.
      Конечное расположение строки — конец строки.
      Класс символов — любой символ в наборе.
      Обратный класс — любой символ, не наявляющийся в наборе.
      Range — все символы в указанном диапазоне.
      Escape -литеральное использование мета-символа.
      Начальное расположение слова — начало слова.
      Конечное расположение слова -конец слова.

      Специальные символы в синтаксисе регулярных выражений обеспечивают наибольшее энергопотребление при совместном использовании. Например, используйте сочетание символа-шаблона ( ) и Repeat ( ), чтобы соответствовать любой строке символов:

      Используйте следующее выражение как часть выражения большего размера для сопоставления любой строки, начинающейся с b , и заканчивая оператором with:

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

  • Используйте пробелы для разделения нескольких строк поиска, если только аргумент не имеет префикса с параметром /c.

Примеры

Для поиска Helloили в файле x. yвведите:

Чтобы найти Hello в файле x. y, введите:

чтобы найти все вхождения слова Windows (начальная прописная буква W) в файле proposal.txt, введите:

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

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

Чтобы получить список точных файлов, которые необходимо найти в текстовом файле, используйте условия поиска в файле stringlist.txt, чтобы найти файлы, перечисленные в filelist.txt, а затем сохраните результаты в файле Results. out, введите:

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

Чтобы получить список всех файлов, содержащих слово Computer, и других слов, начинающихся с «Comp» (например, «Привет» и «конкурировать»), введите:

Как использовать команду wc

Синтаксис команды следующий:

Команда может принимать ноль или более входных имен . Если не указан, или если — , будет читать стандартный ввод. Слово — это строка символов, разделенных пробелом, символом табуляции или новой строкой.

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

Например, следующая команда отобразит информацию о виртуальном файле :

Вывод будет выглядеть примерно так:

448 — количество строк. 3632 количество слов. 22226 — это количество символов.

При использовании стандартного ввода имя файла не отображается:

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

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

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

-l, —lines — —lines количество строк. -w, —words — —words количество слов. -m, —chars — —chars количество символов. -c, —bytes — —bytes количество байтов. -L, —max-line-length — —max-line-length длину самой длинной строки.

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

Например, для отображения только того количества слов, которое вы бы использовали:

Вот еще один пример, который напечатает количество строк и длину самой длинной строки.

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

Вывод покажет количество строк для всех файлов в каталоге , имена которых начинаются с «host»:

Размер файла в Linux

1. Nautilus

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

Программа откроет окно, в котором будут указаны свойства файла, среди них будет и размер:

2. Команда ls

Для того чтобы утилита ls отображала размер файлов в удобном для чтения формате необходимо использовать параметр -h. Например:

Здесь размер отображается в пятой колонке. Чтобы увидеть размер определённого файла надо передать его имя утилите:

ls -lh ‘Снимок экрана от 2020-08-10 20-22-50.png’

Можно ещё вручную указать единицы измерения для показа размера. Для этого используйте опцию —block-size. Например, мегабайты:

ls -l —block-size=M

Вместо ls можно использовать команду ll, её вывод полностью аналогичен команде ls -l:

3. Утилита stat

Программа stat кроме метаданных позволяет выводить размер файла в байтах. Например:

stat ‘Снимок экрана от 2020-08-10 20-22-50.png’

Если нужно показать только размер, используйте опцию -с с указанием формата %s:

stat -c %s ‘Снимок экрана от 2020-08-10 20-22-50.png’

4. Утилита du

Программа du специально предназначена для просмотра размера файлов в папке. Вы можете просмотреть размер конкретного файла, например:

du -h ‘Снимок экрана от 2020-08-10 20-22-50.png’

Опция -h включает вывод размера в удобном для чтения формате. Если вы хотите посмотреть размеры для всех файлов в папке, просто передайте путь к папке:

А чтобы узнать размер папки в Linux используйте опцию -s. Она суммирует размеры всех объектов:

5. Утилита ncdu

Программа ncdu позволяет анализировать дисковое пространство занимаемое файлами и каталогами. Но она не поставляется вместе с системой. Для её установки выполните:

sudo apt install ncdu

Затем просто укажите в параметрах каталог, размер которого вы хотите посмотреть:

Все файлы будут отсортированы по размеру, а в самом низу будет отображен общий размер этой папки:

6. Утилита find

С помощью этой утилиты вы не можете узнать размер файла, зато можете найти файлы с определённым размером. С помощью параметра size можно указать границы размера файлов, которые надо найти. Например, больше чем 2000 килобайт, но меньше чем 2500 килобайт:

/Изображения/ -size +2000k -size -2500k

Размер можно ещё указывать в мегабайтах для этого используйте приставку M, или в байтах, тогда никакой приставки не нужно.

Как посмотреть количество файлов в папке Linux

Самый простой способ решить эту задачу — использовать утилиту ls вместе с утилитой wc. Они покажут сколько файлов находится в текущей папке:

В моем случае утилита выдала результат 21, но поскольку ls выводит размер всех файлов в папке строкой total, то у нас файлов на один меньше. Нужно учесть, что тут отображаются еще и директории. Каждая директория начинается с символа «d», а каждый файл с «-«. Для символических ссылок используется «l». Посмотрите внимательно на вывод ls:

Чтобы их отсеять используйте grep:

Эта конструкция выберет только те строки, которые начинаются на дефис. Если вас интересуют не только обычные файлы, но и скрытые, то можно использовать опцию -a:

Так можно подсчитать количество папок:

А так символических ссылок:

Если вам нужно подсчитать количество файлов во всех подпапках, то можно использовать опцию -R:

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

Если нужно смотреть не только количество файлов в папке, но и подпапок, просто не нужно использовать -type f:

Только папки отдельно:

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

Все эти команды это очень хорошо, но есть еще одно, более удобное средство посчитать количество файлов linux, это утилита tree.

Узнаем размер произвольной папки или сразу нескольких

Просто допишем путь к папке которая нас интересует:

# du -sh /home/backup 25G /home/backup

1
2

hc@host dir# du -sh  /home/backup

25Ghomebackup

Поглядим размер всех объектов в папке:

# du -sh * 508K conf 132K mail 1,2M tmp 3,4G web

1
2
3
4
5

hc@host dir#  du -sh *

508Kconf

132Kmail

1,2Mtmp

3,4Gweb

Добавим в вывод итоговый размер папки с помощью ключа

# du -sсh * 508K conf 132K mail 1,2M tmp 3,4G web 3,4G итого

1
2
3
4
5
6

hc@host dir#  du -sсh *

508Kconf

132Kmail

1,2Mtmp

3,4Gweb

3,4Gитого

И то же самое для произвольного пути:

# du -sh /home/* 328K /home/admin 161M /home/aqua 25G /home/backup 2,0G /home/ice 752M /home/tuser

1
2
3
4
5
6

hc@host dir# du -sh /home/*

328Khomeadmin

161Mhomeaqua

25Ghomebackup

2,0Ghomeice

752Mhometuser

Копирование и вставка в буфер обмена

Вы можете скопировать и вставить текст из/в терминал, выделив их и нажав Ctrl + C или Ctrl + V. Но иногда хочется напрямую получить доступ к буферу обмена. И как вы видите ниже, это не так уж и просто, что на Linux, что на macOS.

# Linuxecho "Hello my friend!" | xclip # копировать "Hello my friend!" в буфер обменаxclip -o >> pasted_text.txt # вставить содержимое буфера в текст файла# macOSecho "Hello my friend!" | pbcopy # копировать "Hello my friend!" в буфер обменаpbpaste >> pasted_text.txt # вставить содержимое буфера в текст файла

Переменные и путь

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

echo "hello" # вывод hello на консольecho $USER # вывод значение переменной USER на консольenv # вывод список всех переменных окруженияset # вывод список всех локальных переменныхMY_FRIENDS=William # создать локальную переменную MY_FRIENDSMY_FRIENDS=$MY_FRIENDS:John:Anna # объединение значения 'John' и 'Anna' в MY_FRIENDSexport MY_FRIENDS # сделать локальную переменную MY_FRIENDS переменной окруженияunset MY_FRIENDS # удалить переменную MY_FRIENDS

Ещё один интересный инструмент — (псевдоним), сокращение для длинных команд. Посмотрим, как он строится:

alias clone_my_repo = "git clone http://verylongurl.com" # создать псевдоним

Для тех, кто не знает, путь (Path) – это каталоги, в которых ОС ищет файлы для исполнения. С его помощью можно запустить файл, написав лишь название, даже не нужно знать его расположение. Кроме того, в путь можно добавить папку, а также найти каталог, где находится исполняемый файл, с помощью команд:

export PATH=$PATH:/home/john/myprogram # добавление каталога к пути /home/john/myprogramwhich nano # отобразить расположение исполняемого файла "nano"whereis nano # отобразить расположение исполняемого файла, справочных страниц, исходного кода и т.д. "nano"

Количество файлов в папке с помощью tree

Утилита tree выводит дерево файлов и папок, а потом подсчитывает их количество по отдельности. Кроме того, утилита имеет множество опций и настроек. Но она не поставляется в системе по умолчанию. Для ее установки в Ubuntu выполните:

$ sudo apt install tree

Синтаксис утилиты очень прост:

$ tree опции каталог

Теперь разберем ее основные опции:

  • -a – выводить все файлы, включая файлы, которые начинаются на точку;
  • -d – выводить только директории;
  • -l – открывать символические ссылки;
  • -f – выводить полный путь к файлу;
  • -x – оставаться только в пределах этого раздела, не переходить по точкам монтирования;
  • -L – устанавливает максимальный уровень вложенности;
  • -P – выбирать только те файлы и папки, которые подходят под регулярное выражение;
  • -I – не выводить файлы, которые подходят под регулярное выражение;
  • –prune – не выводить пустые папки;
  • -o – записать вывод в файл;

В утилиты есть еще опции по сортировке выводимого дерева и по формату вывода имен файлов, но мы не будем их рассматривать, поскольку нас интересует только количество файлов в папке Linux. Сначала считаем количество файлов и папок во всех подпапках:

Теперь только в текущей, задаем максимальную вложенность равной единице:

Еще можем включить вывод всех файлов, включая скрытые:

Или выберем только те, которые содержат второй символ в имени “a”:

Генерация имён файлов в Bash

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

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

Итак, теперь остаётся разобраться с вопросом составления шаблонов. Сейчас будут приведены основные конструкции для осуществления генерации имён. Чаще всего для отбора файлов применяется символ: «*». В случае использования этого знака в чистом виде, Bash выберет все элементы в каталоге без исключений.

root@test:~# ls *
document1.docx document2.docx document3.txt file1.txt file2.docx file3.txt

Для примера, чтобы из этого каталога отобрать файлы: file1, file2, file3, следует воспользоваться шаблоном:

root@test:~# ls file* 
file1.txt file2.docx file3.txt

Символ звёздочки позволяет командному интерпретатору выделить все файлы, начинающиеся с «file». При этом последующая часть наименования будет проигнорирована.

Кроме того, сгенерировать имена можно, взяв за основу расширение файла. Например:

root@test:~# ls .txt*
document3.txt file1.txt file3.txt

Команда ncdu

Более удобный способ найти что занимает место на диске можно с помощью команды ncdu. Утилита ncdu (Ncurses Disk Usage) способна делать всё то же самое, что и утилита du и даже немного больше. К тому же, она предоставляет пользователю удобный в использовании псевдографический интерфейс, с помощью которого можно быстро перемещаться по дереву системы, оценивая размеры интересующих элементов  и папок.

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

По-умолчанию, выполнение команды ncdu без параметров, выводит файловый браузер, в котором после предварительного сканирования (с показом прогресса выполнения) отображается список элементов и подкаталогов текущего каталога. По этому списку можно перемещаться, используя клавиши курсора, спускаться в подкаталоги (<Enter>) выходить из них, при этом информация о размере представленных элементах и папок отображается «как на ладони». В строке состояния отображается общий используемый объём (Total disk usage), фактический объём (Apparent size), а также количество файлов и папок  для текущего анализируемого каталога.

Основные опции команды ncdu:

Опция Назначение
-o ФАЙЛ Позволяет экспортировать результаты работы в указанный файл
-f ФАЙЛ Загружает из файла для отображения данные ранее экспортированные с помощью опции -o
-0 Не никаких информационных сообщений при сканировании файловой системы
-1 Подобна опции -0, но выдаёт единственную строку о статусе выполненного действия. По-умолчанию используется при экспорте в файл
-q Тихий режим. Во время сканирования директории экран с результатами сканирования будет обновляться каждые 2 секунды, вместо 10 раз за секунду. Обычно используется при работе с удаленными системами
-r Включает режим «только для чтения» для отключения встроенной функции удаления. Не работает с опцией -o
-x Не выходить за рамки текущей используемой файловой системы
—exclude ШАБЛОН Исключает из подсчёта значения размеров файлов, имена которых удовлетворяют шаблону, но эти файлы будут отображаться в списке
-X ФАЙЛ,

—exclude-from-file

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

Интерфейс ncdu действительно очень дружественный — размеры всегда отображаются в «человекопонятных» единицах.

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

Примеры команд ncdu

Сделаем поиск занимаемого пространства с помощью ncdu
ncdu /

Снова видим большой каталог /var, и уже с помощью клавишь и ENTER мы можем передвигаться по каталогам. Видим каталог log

А здесь мы видим наши большие логи

Еще несколько полезных примеров.

Сканирование объёмных каталогов с экспортом/архивированием в лог для последующего использования или просмотра:

$ ncdu -1xo- / | gzip > usage_fs.gz
$ zcat usage_fs.gz | ncdu -f-

Сканирование текущей директории, экспорт результатов в лог, и последующий просмотр этих результатов в браузере ncdu:

$ ncdu -o- | tee usage_fs.txt | ncdu -f-

Работа с удалённой системой:

ssh -C username@hostname ncdu -o- / ncdu -f-

В данной команде опция -C используется для утилиты ssh для сжатия сетевого трафика при некачественном или медленном соединении.

Wc Command in Linux (Count Number of Lines, Words, and Characters)

5 Января 2020
&vert;

Терминал

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

Как использовать команду

Синтаксис команды следующий:

Команда может принимать ноль или более входных имен. Если не указано, или когда есть , будет читать стандартный ввод. Слово — это строка символов, разделенных пробелом, символом табуляции или новой строкой.

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

Например, следующая команда отобразит информацию о виртуальном файле :

Вывод будет выглядеть примерно так:

  • 448 — количество строк.
  • 3632 — количество слов.
  • 22226 — это количество символов.

         При использовании стандартного ввода имя файла не отображается:

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

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

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

  • , — Вывести количество строк.
  • , — Вывести количество слов.
  • , — Вывести количество символов.
  • , — Вывести количество байтов.
  • , — Вывести длину самой длинной строки.

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

Например, для отображения только того количества слов, которое вы бы использовали:

    Вот еще один пример, который напечатает количество строк и длину самой длинной строки.

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

    Вывод покажет количество строк для всех файлов в каталоге, имена которых начинаются с «host»:

Подсчитать количество строк 

Команда в основном используется с опцией подсчета только количества строк в текстовом файле. Например, чтобы подсчитать количество строк в файле, введите:

    Первый столбец — это количество строк, а второй — имя файла:

Подсчитайте количество слов

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

    Количество слов показано в первом столбце:

Примеры команд Wc

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

В приведенном ниже примере используется для подсчета количества строк из выходных данных команды.

Команда обозначает «количество слов» и имеет довольно простой синтаксис. Это позволяет подсчитывать количество строк, слов, байтов и символов в одном или нескольких текстовых файлах.

Как посмотреть количество файлов в папке Linux

Самый простой способ решить эту задачу – использовать утилиту ls вместе с утилитой wc. Они покажут сколько файлов находится в текущей папке:

В моем случае утилита выдала результат 21, но поскольку ls выводит размер всех файлов в папке строкой total, то у нас файлов на один меньше. Нужно учесть, что тут отображаются еще и директории. Каждая директория начинается с символа “d”, а каждый файл с “-“. Для символических ссылок используется “l”. Посмотрите внимательно на вывод ls:

Чтобы их отсеять используйте grep:

Эта конструкция выберет только те строки, которые начинаются на дефис. Если вас интересуют не только обычные файлы, но и скрытые, то можно использовать опцию -a:

Так можно подсчитать количество папок:

А так символических ссылок:

Если вам нужно подсчитать количество файлов во всех подпапках, то можно использовать опцию -R:

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

find . -maxdepth 1 -type f | wc

Если нужно смотреть не только количество файлов в папке, но и подпапок, просто не нужно использовать -type f:

find . -maxdepth 1 | wc

Только папки отдельно:

find . -maxdepth 1 -type d | wc

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

Все эти команды это очень хорошо, но есть еще одно, более удобное средство посчитать количество файлов linux, это утилита tree.

Используйте проводник

File Explorer позволяет просматривать все файлы и папки на жестком диске. Вы можете напрямую запустить его, нажав сочетание клавиш Windows + E, или перейдите на «Мой компьютер» и выберите правильный раздел. File Explorer также можно использовать для быстрого поиска количества подпапок или файлов в определенной папке.

Откройте папку и выберите все подпапки или файлы либо вручную, либо нажав сочетание клавиш CTRL + A. Если вы выбираете вручную, вы можете выбрать и пропустить определенные файлы.

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

Подсчитать количество файлов в папке применяя ls

Чтобы посчитать количество всех файлов в определенной директории (например /home/captain) возможно так же использовать команду fls и она посчитает количество файлов. Самый простой способ решить эту задачку — использовать утилиту ls вместе с утилитой wc. Они покажут сколько файлов находится в текущей папке:

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

Эта команда активирует опцию -a, таким образом . , .. и другие компданные начинающиеся с . , также будут подсчитаны. Используя команду «find»:

$ find . -type f -maxdepth 1 | wc -l

PowerShell

Чувствуете себя немного вызывающим? Для продвинутых пользователей есть PowerShell, который на один шаг выше того, что мы видели в командной строке, когда дело доходит до уровня сложности. Используйте функцию поиска Windows, чтобы найти Windows PowerShell и нажать на нее.

На этот раз вы увидите всплывающее окно с синим фоном. Переход к нужной папке проще в PowerShell. Просто введите cd, а затем структуру вашей папки.

cd h: \ база данных

Чтобы подсчитать все файлы или подпапки внутри родительской папки, скопируйте и вставьте следующую команду.

Get-ChildItem | Мера-Объект | % {$ _. Count}

Вы заметите, что результат, который я получил выше, отличается. Это потому, что команда не является рекурсивной, что означает, что она не будет проходить глубже, чем на один уровень. Итак, есть 5 подпапок.

Для рекурсивного подсчета всех файлов и папок:

Get-ChildItem -Recurse | Мера-Объект | % {$ _. Count}

Чтобы рекурсивно считать только папки:

Get-ChildItem -Recurse -Directory | Мера-Объект | % {$ _. Count}

Чтобы рекурсивно считать только файлы:

Get-ChildItem -Recurse -File | Мера-Объект | % {$ _. Count}

Как проверить все открытые файлы пользователем или процессом в Linux

В некоторых ситуациях на Linux могут возникать ошибки, связанные с превышением лимита использования файловых дескрипторов.
Эти лимиты накладываются как самим ядром Linux, так и его программными модулями, например PAM.

Лимит ядра Linux

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

# cat /proc/sys/fs/file-max

Этот лимит может быть изменён без перезагрузки системы (начинает действовать сразу и действует до перезагрузки):

# echo "1221724" > /proc/sys/fs/file-max

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

sysclt.conf
...
fs.file-max=1221724
...

Методика подсчёта открытых файлов

Для получения информации о количестве всех открытых файлов всеми процессами в Linux некоторые «знатоки» предлагают использовать команду типа

# lsof | wc -l

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

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

# cat /proc/sys/fs/file-nr

Первое число — общее количество занятых/используемых на данный момент времени файловых дескрипторов.

Второе число — количество выделенных процессам, но не используемых в данный момент дескрипторов.

Третье число — максимальное количество открытых дескрипторов

Примеры получения данных

Получить список TOP-20 процессов с самым большим количеством открытых файловых дескрипторов:

# for x in `ps -eF| awk '{ print $2 }'`; \
 do echo `ls /proc/$x/fd 2> /dev/null | \
 wc -l` $x `cat /proc/$x/cmdline 2> /dev/null`; \
 done | sort -n -r | head -n 20

Подсчитать количество открытых файлов в разрезе процессов (в первой колонке будет выведен PID процесса, во второй количество открытых файлов этим процессом):

# ps aux | sed 1d | awk \
 '{print "fd_count=$(lsof -p " $2 " | wc -l) && echo " $2 " $fd_count"}' | \
 xargs -I {} bash -c {}

Посмотреть открытые файловые дескрипторы во всех процессах для отдельно взятого пользователя, например «apache»

# lsof -u apache

Подсчитать количество открытых файлов в каждом процессе для отдельно взятого пользователя:

# lsof -u apache | awk '{print $2}' | sort | uniq -c | sort -n

Тоже самое, только в реальном режиме времени:

# watch 'lsof -u vdsm | awk '\''{print $2}'\'' | sort | uniq -c | sort -n'

Посмотреть открыте файловые дескриптры для отдельно взятого процесса (по PID процесса):

# lsof -p 9189

Подсчитать количество файловых дескриптров для отдельно взятого процесса:

# lsof -p 9189 | wc -l

Дополнительные источники информации:

Блог Дениса Тулякова — Количество открытых файлов, сокетов

Проверено на следующих конфигурациях:

Версия ОС
Debian GNU/Linux 8.10 (jessie)

Автор первичной редакции:Алексей Максимов
Время публикации: 09.06.2018 11:18

Просмотр недвижимости

Это, вероятно, один из самых простых способов узнать, что находится в этой папке. Вам не понадобится дополнительное программное обеспечение для этого. Просто найдите папку или подпапку, для которой вам нужно сосчитать подпапки или файлы, щелкните по ней правой кнопкой мыши и выберите «Свойства» в контекстном меню. Вы также можете нажать ALT + Enter, чтобы открыть Свойства папки или подпапки.

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

Примечание.

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

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

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

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

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

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

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

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

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

  • Команда 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).
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: