У меня есть каталог с именем root
. Он имеет глубоко вложенные подкаталоги. В этих подкаталогах есть куча файлов. Я хочу найти самые большие файлы в root
.
янеХочу найти каталоги вообще. Мне не важен размер самого большого каталога, я просто хочу найти самые большие файлы.
root
|
- subdir1
|
- small file 1
- large file 1
- small file 2
... lots more files
- subdir2
|
- small file 3
- large file 2
Я хочу распечатать large file 1
и large file 2
. Я не хочу, чтобы он распечатывал что-либо о root
, subdir1
, или subdir2
, даже если они больше, чем large file 1
или 2
. Для меня это просто шум.
Как это сделать на Mac в командной строке?
решение1
Давайте ls
сделаем сортировку->
find . -type f -exec ls -S {} + | head -n10
решение2
Вот что у меня получилось:
find . -type f -exec ls -l {} + | sort -rk 5,5 | head -10
Найти все файлы (это игнорирует каталоги), затем ls -l
их, чтобы я мог увидеть их размеры. Передать это в sort. -k 5,5
говорит сортировать по 5-му столбцу (столбец, который имеет размер), и -r
сортирует по убыванию. head -10
дает мне самые большие 10 (не полный список).