На этот вопрос уже есть ответ здесь:
Как найти, какая папка в домашнем каталоге является наибольшей по количеству файлов? (исключая каталоги)
На этот вопрос уже есть ответ здесь:
Как найти, какая папка в домашнем каталоге является наибольшей по количеству файлов? (исключая каталоги)
find -type f -printf '%h\n'|uniq -c|sort -rn|head -1
Вы можете заменить "head - <N>" на "head -1", чтобы увидеть верхний <N>, или удалить его полностью, чтобы увидеть весь список от большинства до наименьшего количества файлов.
Из "человек найти":
-printf format
.....
%h Leading directories of file's name (all but the last element). If the file name contains no
slashes (since it is in the current directory) the %h specifier expands to ".".
(cd $HOME && find . -type f) | grep '/.*/' | cut --delimiter=/ --field=1,2 \
| uniq --count | sort --numeric-sort --reverse \
| head -1 | cut --delimiter=/ --field=2
т. е. печатать каждый путь к файлу в домашнем каталоге, использовать только первые два уровня каталогов (первый из них .
), пропускать файлы на верхнем уровне, группировать и подсчитывать вхождения, затем сортировать, брать первую запись и печатать имя каталог.
Если вы просто имеете в виду, в каком каталоге находится наибольшее количество файлов, игнорируя их размер, вы можете сделать
find ~/ -type d -print0 |
while IFS= read -r -d '' dir; do
files=$(find "$dir" -maxdepth 1 | wc -l);
echo -e "$files\t$dir";
done | sort -n | tail -n 1
Это, однако, также считает подкаталоги «файлами». Чтобы считать только файлы, используйте этот вместо:
find ~/ -type d -print0 |
while IFS= read -r -d '' dir; do
files=$(find "$dir" -maxdepth 1 -type -f | wc -l);
echo -e "$files\t$dir";
done | sort -n | tail -n 1
Использовать
$ ls
команда или список содержимого каталога. Попробуйте что-то вроде:
$ cd /your_directory
$ ls -lA
это должно работать. Проверить
man ls
настроить именно то, что вы хотели бы видеть.