Conversation

Вопрос знактокам Linux:
есть куча утилит, типа ncdu, которые удобно показывают занятое место по папкам. А есть ли нечто подобное по количеству файлов?

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

3
0
0

@mstadmin

ls -1 <directory> | wc -l

Обязательно ls -1 (минус один), чтобы не выводил "итого"

1
0
0

@post_hardcore Немного не то вышло. :) Файлы могут быть и в подпапках и тд. Я скриптик написал, которых обходит всё это дело и показывает, но думал вдруг есть что-то стандартное :)

2
0
0

@mstadmin а, понял.
Что-то подобное не видел, к сожалению. Но как будто бы реализовать не сложно.
В целом, это доказано твоим скрином)

1
0
0

@post_hardcore На скрине тупо обход по папкам. Разумеется, это адски долго и некрасиво. :)

0
0
0

@medvedych Это показывает занятое место, а интересно как раз сколько файлов.

Тут в одном месте споткнулись, что некоторые папки загадили так, что даже открывается не сразу, а по факту несчастные 5ГБ всего и поэтому никто не обращал внимания. :)

1
0
0

Несерьёзный Выдумщик

@mstadmin А что мешает через:

tree -a /var
...
5490 directories, 109793 files

если глянуть man tree — там много про режимы рекурсивного обхода, ходить ли по символическим ссылка, исключения по маске (-P pattern -I pattern) и т.п.

1
0
0

@mstadmin
find /tmp -type f 2>/dev/null | wc -l

Но надо учитывать еще права всякие, если ты куда-то в системные папки лезешь :)

1
0
0

@medvedych права - это вопрос другой, решаемо :)

Немного перефразирую: нужен список директорий и число файлов внутри с учётом подпапок. И как в ncdu, сортировка от самой "массовой" папки.

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

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

0
0
0

@grumb Внизу только число всех файлов, а нужен отсортированный список папок с количеством файлов внутри с учётом подпапок. :)

0
0
0

А зачем собирать число файлов рекурсивно?

Проблемы возникают, если их слишком много в одном каталоге. У нас как-то сложили пару десятков миллионов... как оказалось, это приводит к отказу примерно всего, что такое трогает :) Обычно же чистят либо с целью освобождения места (т.е. по размеру, в том числе рекурсивно), либо от старого (тип-дата). Столкнулись с дефицитом inode?

Сам кейс кажется мне странноватым, хотя я бы тоже скриптом посчитал.

1
0
0

@shuro Несколько причин. :) Синхронизация этого дела - небольшой ад. Слишком много файлов в одной папке - тормоза. Одна из задачек ещё и бэкап наладить, а смысл бэкапить то, что не нужно. При этом разные проекты и владельцы, поэтому такой "топ" хотелось сделать, чтобы знать кто будет архивировать/убирать ненужное. :)

Кстати, я делал ставку на один проект, но он только на 3 месте. Иногда "серые мышки" могут преподносить сюрпризы.

Ой как не люблю фанатов "а давайте оставим на всякий случай".

0
0
1