7

В нашем университете действует политика удаления данных с определенных дисков, если они не изменялись в течение шести месяцев. Теперь я хотел бы перечислить все файлы, которые не были изменены за последние пять месяцев.

Как я могу это сделать? У меня есть доступ ко всем основным инструментам Linux, таким как Bash, find и т.д.

2 ответа2

14

это

find directory -mtime +150

для файлов, не измененных в этот период (-150 будет перечислять измененные файлы).

1

Если вам нужно быть более точным в отношении високосных лет и конкретной продолжительности месяца, вы можете сделать это:

find /dir/to/start/from -type f -mtime +$(((10#$(date +%s) - 10#$(date -d "now - 5 months" +"%s")) / (24*60*60)))

Вот как могло бы измениться количество дней, если бы вышеперечисленное выполнялось в первый день каждого месяца в 2010 году:

1 153
2 153
3 151
4 151
5 150
6 150
7 149
8 152
9 153
10 153
11 153
12 153

Как видите, "150" - это только приблизительное значение. Однако для большинства целей аппроксимации (например, 24*60*60 ) достаточно хороши.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .