Як знайти файл, до якого було здійснено доступ / створено кілька хвилин тому


78

Я завжди забуваю, який файл я редагував хвилини тому, тому вводжу find . -cmin 1чи якесь інше значення, але воно спрацьовувало рівно 1хвилин. Довелося спробувати find . -ctime 2 /*or 3,4...*/.

Тоді я знаходжу інший підхід, який буде кращим:

touch -t 12251134 empty /*similar format which 5 or 10 minutes ago */
find . -newer empty

Я можу використати date -d'-5minutes' +%m%d%H%Mдля мене час. Я хочу знати, чи є простий спосіб знайти файли, доступ до яких здійснено 1, 2 або 3 ... хвилини тому.


1
Чому б не використовувати "історію"? Отже, за допомогою клавіш зі стрілками ви можете шукати попередні команди, які ви використовували.
Ікар3

1
Я використовую ls -Ahl -crt | tail -5. Так часто, що я зробив для нього псевдонім. mcз модифікованим сортуванням було б ще краще.
potrzebie

Відповіді:


129

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

find . -cmin +<time>
find . -cmin -<time>
find . -cmin  <time>

Наприклад, у вашому випадку файли з останньою версією максимум за 5 хвилин надаються:

find . -cmin -5

2
Цікаво, чому вони не включили це корисне використання на сторінку
довідників

10
Так, саме там, прямо на сторінці пошуку людини , просто шукайте: Числові аргументи можуть бути вказані як: + n, більше ніж n; -n, менше ніж n; n, точно n. Їх діти, які писали ці програми Unix, творили чудеса (:
Рубенс

1
Е, кіііінда. Це трохи про те, як ви можете використовувати, +і -є, принаймні в моїй системі, на один рівень вище в ієрархії: під заголовком "Первинні". Я був здивований, що він відповідав лише точному, тому я перевірив ще .. ну "первинний", який міг би допомогти. Врешті-решт на допомогу прийшов добрий OL 'SO :)
ari gold

1
Тільки зверніть увагу, що якщо ви хочете mtime, є також варіант mmin
Йохан Буле

17

Якщо у вас є GNU, ви також можете сказати

find . -newermt '1 minute ago'

В tопції робить «файл» еталонним для newerстати опорною рядком дати виду , який ви могли б перейти на GNU date -d, який розуміє складні специфікації дати , як у наведеному вище.


Для цього простого випадку -mminбуде працювати, але ви також можете сказати -newermt 'yesterday'або -newermt '+ 2 weeks'навіть -newermt '2PM last Sunday'. Можна findобчислити ці речі вручну, але набагато легше дозволити це зрозуміти.
сорпігаль

12

Щоб знайти файли, доступ до яких здійснено 1, 2 або 3 хвилини тому, використовуйте -3

find . -cmin -3

4

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

ls -lt | head

Тут перелічені останні оновлені файли та каталоги по порядку. Насправді, я використовую його так сильно, що у мене є псевдонім "lh".


а якщо файлів більше 10, але ви не знаєте їх номер. Тоді голова не працює
Stunner

1
headвсе ще працює для цієї мети, 10 рядків - це лише за замовчуванням. Ви можете вказати скільки завгодно. Перші п’ять рядків? head -5. Перші двадцять рядків? head -20. Те саме зtail
Carles Alcolea
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.