Знайдіть файл, якому триває 30 хвилин


12

Як я можу знайти файл, якому належить 30 хвилин /bin/ksh?


4
Ви маєте на увазі "змінився його вміст 30 хвилин тому" чи "не існував, поки він не був створений 30 хвилин тому"? Також яку операційну систему ви використовуєте? Різні операційні системи поставляються з різними версіями find.
Марк Плотнік

@ Mark Plotnick Я хочу знайти файл, якому було 30 хвилин
Aravind

Я думаю, що він / вона означає, що було створено 30 хвилин тому . Начебто, наприклад, хтось X старий, він / вона народився X час тому.
erik

Відповіді:


15

В Linux не відстежується час створення файлу. Ви можете отримати доступ лише:

  • час останньої модифікації вмісту (створення вважається модифікацією курсу) mtime,
  • останній час доступу atime,
  • в останній раз зміна мета-даних, ctime.

Якщо ви хочете шукати файли з тестом на основі цих часів, find( man find) може вам допомогти.

Ви скористаєтеся цим способом, щоб знайти файл, доступ до якого було 30 хвилин тому, у вашому поточному каталозі та його підкаталогах:

find -amin 30

Зазвичай вам потрібно скористатися інтервалом, оскільки може бути важко дати точну кількість хвилин:

find -amin +25 -amin -35

Тут ви знайдете файли, доступ до яких проходив понад 25, але менше 35 хвилин тому.

І якщо вас цікавить лише час модифікації, а не час доступу (тобто читання), замініть -aminна -mmin.


ви не хочете аніме. atime - час доступу.
ctrl-alt-delor

@richard ОП не уточнив, що він так мав на увазі ... У всякому разі, я mtimeтеж став у відповідь
lgeorget

1
@ lgeorget, коли я використовую -mtime 30це, показував файли 30 днів.
Аравінд

@ user2910201 Підходить мені дурно. Xtimeваріанти - для днів, а Xminваріанти - для хвилин. Моє погано, я редагую відповідь
lgeorget

2
@ user2910201, але зауважте, що ви можете використовувати Xtimeбудь-яку розумну одиницю часу, наприклад 30mтридцять хвилин або 5dп’ять днів
lgeorget

3

Ви можете використовувати mtimeце:

find . -mmin 30    #exactly 30 minutes old

це підкаже вам файли, які були createdабо modified30 хвилин назад
g4ur4v

@ g4ur4v, коли я -mminйого використовую , показ -mminнедійсний
Aravind

Спробуйте це:find /path -mtime +30m
ryekayo

Не впевнений, чому це не розпізнає -mmin, я шукав багато прикладів за допомогою цієї команди ..
ryekayo

3

З виходом GNU/BSD find

TZ=ZZZ0 touch -t "$(TZ=ZZZ0:30 date +%Y%m%d%H%M.%S)" /reference/file

і потім find . -newer /reference/file

рішення, подане Стефаном Шазеласом

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