1

Я пытаюсь найти расширения файлов с сортировкой по размеру в каталоге и подкаталоге.

Что-то вроде этого:

 76K    .pek  ./Adobe Premiere Pro Preview Files/demo.PRV/1d860051-77c9-4acb-973e-3b6b4428c54e+57631ed274ffb879a432291c 48000.pek
 18M    .cfa  ./Adobe Premiere Pro Preview Files/demo.PRV/1d860051-77c9-4acb-973e-3b6b4428c54e+57631ed274ffb879a432291c 48000.cfa
 19M          ./.git/objects/e6/66dcd00fc197154f89563f2f1aa508e2ab3b50
 21M    .mov  ./Demo 2.mov

а также, если возможно, поиск за исключением некоторых каталогов, таких как .git

Я пробовал это https://superuser.com/a/397662

3 ответа3

1

Команда find в моей системе работает следующим образом

 # find . -type f -ls 
... 
145890044    12192 -rw-rw-r--   1 USER GROUP        239234 Jun  7 15:03 ./QA/Audits/scripts/MYFILE.pdf 
...

find . -type f находит все файлы в текущем каталоге и подкаталогах

-ls перечисляет файлы

Если вы хотите исключить каталоги, вы можете использовать переключатель чернослива https://stackoverflow.com/questions/1489277/how-to-use-prune-option-of-find-in-sh

Размер указан в столбце № 7 выходных данных. Так что, если я хочу отсортировать результаты, я делаю это

# find . -type f -ls | sort -nr -k7 

-n число -r обратный порядок (необязательно)-k7 столбец номер 7

0

Я могу найти размер файла

$ find . -type f -print0 | xargs -0 du | sort -rn | head -10 | cut -f2 | xargs -I{} du -sh {}

  346M   ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi
  159M   ./.local/share/Trash/files/funky chicken.mpg
  117M   ./Calibre Library/Robert Martin/cc.mobi
  114M   ./Dropbox/snapshots/monthly.tgz
  114M   ./Dropbox/snapshots/daily.tgz
  114M   ./Dropbox/snapshots/weekly.tgz
  76M    ./tmp/projects/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz

и количество расширений

$ find . -type f -name "*.*" | grep -o -E "\.[^\.]+$" | sort | uniq -c | sort -rn

 353 .JPG
  53 .png
  45 .mov
  33 .DS_Store
  15 .prproj
     ...
   2 .MXF
   1 .xmp
   1 .psd
   1 .mp4
   1 .md
   1 .m4a
   1 .gitignore
   1 .gitattributes

Как объединить оба, чтобы получить count max file size extensions файлов ?

0

С верхней части моей головы:

du -h --exclude=".git" <starting directory> | sort -h | grep -o "\.[:alnum:]+$"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .