Как найти самую большую папку? [Дубликат]


Ответы:


0
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 ".".

2
(cd $HOME && find . -type f) | grep '/.*/' | cut --delimiter=/ --field=1,2 \
 | uniq --count | sort --numeric-sort --reverse \
 | head -1 | cut --delimiter=/ --field=2

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


0

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

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

-4

Использовать

$ ls

команда или список содержимого каталога. Попробуйте что-то вроде:

$ cd /your_directory
$ ls -lA

это должно работать. Проверить

 man ls 

настроить именно то, что вы хотели бы видеть.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.