Chciałbym, aby polecenie Linuksa znalazło pliki zmienione w ostatnich n
sekundach.
Czy istnieje skrypt powłoki lub inne narzędzie, które mogę uruchomić z interfejsu wiersza poleceń lub GUI?
Użyj polecenia find w następujący sposób:
find . -name "*.txt" -mtime -60s
Aby znaleźć wszystkie *.txt
pliki zmodyfikowane w ciągu ostatnich 60 sekund.
find: missing argument to `-mtime'
. Jednak mogę uzyskać pożądane zachowanie, używając -mmin i argumentu dziesiętnego. Nie mogłem znaleźć żadnego odnośnika na stronie podręcznika dla find do użycias
jako argumentu.-mtime
. „60s” nie jest nawet prawidłową opcją w POSIX i GNU find. Argumentem-mtime
jest liczba określająca liczbę 24-godzinnych okresów temu, kiedy plik został zmodyfikowany.Rozwiązanie z sekundami określającymi mtime nie działa na moich systemach Linux, które używają
find --version
==find (GNU findutils) 4.4.2
.Otrzymuję następujący błąd:
Mogę jednak użyć
-mmin
(do modyfikacji w ostatnich m minutach) i mogę przyjąć argument dziesiętny; np. następujące wyszukuje pliki zmodyfikowane w ciągu ostatnich 30 sekund.Na przykład; tworzenie plików ostatnio modyfikowanych 1s, 6s, 11s, ... temu przez ostatnie 120 sekund, to polecenie znajduje:
Jeśli naprawdę potrzebujesz tego w kilka sekund, możesz zrobić coś takiego:
źródło
Podobnie jak sugeruje glenn, jeśli chcesz znaleźć wszystko zmodyfikowane, powiedzmy, w czasie, gdy działał proces instalatora, może być łatwiej zrobić coś takiego:
Nie musisz wtedy obliczać czasu; po prostu zauważysz, że rzeczy zmieniły się po pliku punktu kontrolnego.
źródło
Jeśli masz wersję Find, która nie obsługuje,
-mtime -60s
lepszym rozwiązaniem jestźródło
Najprostszym sposobem na to jest:
-mtime -60s
Opcja, o których mowa w odpowiedzi, nie działa w wielu wersjachfind
, nawet w 2016 roku-newermt
jest o wiele lepszym rozwiązaniem dla nas. Może analizować wiele różnych formatów daty i godziny.Alternatywna metoda
mmin
to:Ta opcja może nie działać we wszystkich
find
wersjach.źródło
Jeśli monitorujesz katalog pod kątem zmian w plikach, prawdopodobnie chcesz użyć narzędzi inotify zamiast nieskończonej pętli odpytywania.
źródło
Jeśli twoja wersja
find
nie akceptuje sekund lub rzeczywistych wartości, podobnie jak moja, użyj-mmin
, ale określ 0, a wszystkie pliki zostaną zmodyfikowane w mniej niż minutę:źródło