Я хочу отфильтровать вывод ls
команда на основе размера файла. О любом .jpg или .png файлах, больше, чем 100 КБ, нужно сообщить в выводе.
Я смог отфильтровать .png / .jpg файлы, но я не могу отбросить любые файлы, меньшие, чем 100 КБ.
Вот то, что я в настоящее время использую:
ls -lah | grep '.png\|.jpg'
Какие-либо идеи, как я могу сделать это?
Поскольку другие предложили, find
позволит Вам находить файлы в указанных диапазонах размера. Find
выводы просто путь к каждому файлу, все же. Кроме того, без дальнейшей квалификации, find
найдет все файлы в текущем каталоге и в каждом каталоге ниже текущего каталога. Следующие поиски только текущий каталог и использование ls
отобразить результаты.
find . -maxdepth 1 -size +200 \( -name \*.png -o -name \*.jpg \) -print | xargs ls -ldh
Обратите внимание, что размер находится в блоках, где блок часто если не всегда 512 байтов.
Можно сделать то использование find
:
find . -type f -size +100k | grep '.png\|.jpg'
Где +100k
указывает размер в КБ, означая, что только файлы, больше, чем это, должны быть произведены. find
также имеет некоторые другие хорошие опции, например, чтобы только перечислить файлы, которые были созданы определенное количество время назад. Посмотрите man find
для получения дополнительной информации.
Вышеупомянутое могло также быть переписано как
find . -type f -size +100k -name "*.png" -o -name "*.jpg"
Использовать find
вместо ls
:
find . -type f -size +100k \( -name \*.png -or -name \*.jpg \)