Как найти самые большие файлы в директории - игнорируя размеры каталогов
Я хочу сделать что-то подобное
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