Ответ 1
find . -size +10k -exec ls -lh {} \+
первая часть этого идентична ответу @sputnicks и sucesffully находит все файлы в каталоге более 10k (не путайте k с K), мое добавление, вторая часть затем выполняет ls -lh
или ls, которые перечислены (-l) файлы с помощью удобочитаемого размера (-h). отрицайте h, если хотите. конечно, {}
является самим файлом, а \+
является просто альтернативой \;
который на практике \;
повторяется или:
ls -l found.file; ls -l found.file.2; ls -l found.file.3
где \+
отображает его как один оператор или:
ls -l found.file found.file.2 found.file.3
больше на \; vs + с find
Дополнительно, вам может потребоваться список, упорядоченный по размеру. Это относительно легко выполнить. Я бы использовал параметр -s
для ls
, поэтому ls -ls
, а затем передайте его на sort -n
для сортировки по цифре
который станет следующим:
find . -size +10k -exec ls -ls {} \+ | sort -n
или в обратном порядке добавьте -r:
find . -size +10k -exec ls -ls {} \+ | sort -nr
наконец, ваш заголовок говорит, что найти самый большой файл в каталоге. Вы можете сделать это, переведя код до tail
find . -size +10k -exec ls -ls {} \+ | sort -n | tail -1
найдет вам самый большой файл в каталоге и его подкаталогах.
Заметьте, что вы также можете сортировать файлы по размеру с помощью -S и отрицать необходимость сортировки. но чтобы найти самый большой файл, который вам нужен, чтобы использовать голову,
find . -size +10k -exec ls -lS {} \+ | head -1
преимущество при использовании -S, а не sort
- одно, вам не нужно вводить sort -n
и два, вы также можете использовать -h
параметр для чтения человеком. который является одним из моих любимых в использовании, но недоступен со старыми версиями ls
, например, у нас есть старый сервер centOs 4 на работе, у которого нет -h