Файли більше 1 Гб і старше 6 місяців


20

Я хочу знайти на всьому сервері файли розміром більше 1 Гб і старші 6 місяців. Як написати команду для цього?

Відповіді:


37

Використання find:

find /path -mtime +180 -size +1G

-mtimeозначає час модифікації, що перевищує 180 днів (+180). І -sizeпараметр шукає файли більше 1 ГБ.


2
Зауважте, що в findреалізаціях, де цей Gсуфікс підтримується, він означає GiB (1073741824 байт), а не ГБ (1000000000). Портативно, ви б користувалисяfind /path -mtime +180 -size +1073741824c
Стефан Шазелас

1
якщо ви хочете уникнути помилок між списком таких файлів: find: a.txt :Permission deniedя пропоную додати цей 2>/dev/nullнатхненник цього коментаря: unix.stackexchange.com/questions/42841/…
gmansour

Ви також можете xargs ls -lhSfind /path -mtime +180 -size +1G | xargs ls -lhS
передавати

@ user553965 Ваша команда не працюватиме. Що насправді потрібно , щоб сортувати за розміром є: find / -size +1G -mtime +180 -print0 2>/dev/null | xargs -0 ls -lhS. Примітка для новачків: перенаправлення 2>/dev/nullпросто позбавляється від permission deniedпомилок, які неминуче з’являться при пошуку з root. Для сортування за останньою зміненою датою використовуйте ls -lhtзамість цього і додаючи rдо lsкоманд, наприклад ls -lhSr, буде повернено результати (найменший до найбільшого / найдавніший до найновішого).
маттст

6

find / -size +1G -mtime +180 -type f -print

Ось пояснення параметрів команди за варіантом: Починаючи з кореневого каталогу, він знаходить усі файли розміром більше 1 Гбіт, змінені понад 180 днів тому, що мають тип "файл", і друкує їх шлях.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.