Отфильтруйте вывод ls на основе размера файла

Я хочу отфильтровать вывод ls команда на основе размера файла. О любом .jpg или .png файлах, больше, чем 100 КБ, нужно сообщить в выводе.

Я смог отфильтровать .png / .jpg файлы, но я не могу отбросить любые файлы, меньшие, чем 100 КБ.

Вот то, что я в настоящее время использую:

ls -lah | grep '.png\|.jpg'

Какие-либо идеи, как я могу сделать это?

5
задан 17.05.2011, 06:28

0 ответов

Поскольку другие предложили, find позволит Вам находить файлы в указанных диапазонах размера. Find выводы просто путь к каждому файлу, все же. Кроме того, без дальнейшей квалификации, find найдет все файлы в текущем каталоге и в каждом каталоге ниже текущего каталога. Следующие поиски только текущий каталог и использование ls отобразить результаты.

find . -maxdepth 1 -size +200 \( -name \*.png -o -name \*.jpg \) -print | xargs ls -ldh

Обратите внимание, что размер находится в блоках, где блок часто если не всегда 512 байтов.

3
ответ дан 07.12.2019, 17:06

Можно сделать то использование find:

find . -type f -size +100k | grep '.png\|.jpg'

Где +100k указывает размер в КБ, означая, что только файлы, больше, чем это, должны быть произведены. find также имеет некоторые другие хорошие опции, например, чтобы только перечислить файлы, которые были созданы определенное количество время назад. Посмотрите man find для получения дополнительной информации.

Вышеупомянутое могло также быть переписано как

find . -type f -size +100k -name "*.png" -o -name "*.jpg"
4
ответ дан 07.12.2019, 17:06

Использовать find вместо ls:

find . -type f -size +100k \( -name \*.png -or -name \*.jpg \)
3
ответ дан 07.12.2019, 17:06

Теги

Похожие вопросы