Czy istnieje odpowiednik tail -f dla ls?

7

Zasadniczo pytanie znajduje się w tytule. Chcę monitorować katalog pod kątem nowych plików, które są zapisywane lub usuwane, tak jak mogę monitorować plik dziennika tail -f. czy to możliwe?

Alex
źródło

Odpowiedzi:

16

Spróbuj obejrzeć.

Zaczerpnięte stąd :

watch -d ls -l

Próbowałem to z przyjacielem przed chwilą, wydaje się, że podświetlenie nie działa właściwie, podświetli pozornie losowy wybór. Próbowałem tego w terminalu OS X ssh'd na maszynie RHEL5, a mój przyjaciel próbował w terminalu GUI Ubuntu.

Niestety inotifywait nie jest obecny na maszynie RHEL5, więc nie mogę podać żadnych informacji na temat skuteczności tego polecenia.

arpz
źródło
inotifywaitjest częścią inotify-tools .
grawity
Dzięki. Wygląda na to, że jest to prawdopodobnie preferowane rozwiązanie, zwłaszcza z systemem, do którego można dodawać pliki binarne.
arpz
Umieść polecenie w cudzysłowie, jeśli polecenie ma jedną lub więcej potoków. watch -d "ls -l | grep avi".
Bibhas
6

inotifywaitfrom inotify-tools pokazuje dziennik modyfikacji plików w czasie rzeczywistym, podobny do tail -f.

inotifywait -m -q -e create,delete,move /dir

-rmożna dodać do zegarków rekurencyjnych (może być trochę powolny w przypadku wielu podkatalogów), --formataby zmienić format wyjściowy (np. dodać znaczniki czasu lub dołączyć ścieżkę i nazwę pliku).

Przykładowe dane wyjściowe:

/home/grawity/code/bin/ CREATE,ISDIR fallback
/home/grawity/code/bin/ CREATE gnome-inhibit-list
/home/grawity/code/bin/ CREATE k5translate
/home/grawity/code/bin/ MOVED_FROM logout
/home/grawity/code/bin/ DELETE pacman-sigstats

(Nawiasem mówiąc, tail -f używa również inotify do śledzenia zmian w pliku).

grawitacja
źródło