Znajdź plik, który ma 30 minut


12

Jak mogę znaleźć plik, który ma 30 minut /bin/ksh?


4
Czy masz na myśli „czy jego zawartość zmieniono 30 minut temu”, czy „nie istniał, dopóki nie został utworzony 30 minut temu”? Z jakiego systemu operacyjnego korzystasz? Różne systemy operacyjne są dostarczane z różnymi wersjami find.
Mark Plotnick

@ Mark Plotnick Chcę znaleźć plik, który miał 30 minut
Aravind

Myślę, że on / ona oznacza, że został stworzony 30 minut temu . Jak gdyby np. Ktoś miał X lat, urodził się X lat temu.
erik

Odpowiedzi:


15

W systemie Linux nie ma śladu czasu utworzenia pliku. Możesz uzyskać dostęp tylko do:

  • czas ostatniej modyfikacji treści (kreacja liczy się jako modyfikacja kursu) mtime,
  • czas ostatniego dostępu atime,
  • ostatni raz modyfikacja meta-danych ctime.

Jeśli chcesz wyszukać pliki z testem opartym na tych czasach, find( man find) może ci pomóc.

Użyłbyś go w ten sposób, aby znaleźć plik, do którego dostęp uzyskano dokładnie 30 minut temu w bieżącym katalogu i jego podkatalogach:

find -amin 30

Zwykle warto użyć interwału, ponieważ podanie dokładnej liczby minut może być trudne:

find -amin +25 -amin -35

Spowoduje to znalezienie plików, do których uzyskano dostęp ponad 25, ale mniej niż 35 minut temu.

A jeśli jesteś zainteresowany tylko w czasie modyfikacji a nie w dostępie (tj czytać) Czas wymienić -aminz -mmin.


nie chcesz atime. atime to czas dostępu.
ctrl-alt-delor

@richard OP nie sprecyzował, co miał na myśli, więc ... W każdym razie ja mtimetakże w odpowiedzi
lgeorget

1
@ lgeorget, gdy -mtime 30go używam , wyświetlał pliki w wieku 30 dni.
Aravind,

@ user2910201 Ups głupie mnie. Xtimeopcje dotyczą dni, a Xminopcje minut. Mój zły,
redaguję

2
@ user2910201, ale pamiętaj, że możesz korzystać Xtimez dowolnej rozsądnej jednostki czasu, na przykład 30mprzez trzydzieści minut lub 5dprzez pięć dni
lgeorget

3

Możesz użyć mtimedo tego:

find . -mmin 30    #exactly 30 minutes old

powie ci to pliki, które były createdlub modified30 minut wstecz
g4ur4v

@ g4ur4v, gdy -mmingo używam , pokazuje, że -mminnie jest prawidłową opcją
Aravind

Wypróbuj to:find /path -mtime +30m
ryekayo

Nie jestem pewien, dlaczego się nie rozpoznaje -mmin, szukałem wielu przykładów za pomocą tego polecenia ...
ryekayo

3

Bez GNU/BSD find

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

i wtedy find . -newer /reference/file

rozwiązanie podane przez Stéphane Chazelas

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.