Как найти самые большие файлы в директории - игнорируя размеры каталогов

Я хочу сделать что-то подобное

du -a | sort -rn | head

Но я хочу извлечь только файлы, игнорируя каталоги.

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

ОБНОВИТЬ

Я также хочу вернуть полный путь к файлам

3 ответа

Решение

Это должно работать:

find <path> -type f -exec du -a{} + | sort -rn | head

Взято с http://unix-linux.itags.org/q_unix-linux-programming_84920.html

Один из способов найти самый большой файл в каталоге:

find . -type f | xargs ls -1S | head -n 1

Я просто хочу добавить свое решение, хотя оно не такое полное, как @Michael Plotke

ls -lR | egrep "^-" | awk '{ print $5, "\t", $8 }' | sort -rn | head

ОБНОВЛЕНО

Теперь мне пришлось использовать этот скрипт в BSD Unix (что я изначально не собирался делать) и обнаружил, что решение Майкла не работает.

Благодаря включению решения @ steve в мое, это решение более пригодно для систем BSD:

find . -type f | xargs ls -lS | awk '{ print $5, "\t", $9 }' | head
Другие вопросы по тегам