Możesz użyć fswatch
, który uważam za łatwy do zainstalowania przez homebrew
. I tak, używa FSEvents. Wtedy po prostu zrobić:
fswatch /Volumes/MUSIC
gdzie MUSIC
jest serwer Samba-muzyczny oparty na mojej sieci.
Oto, jak wygląda w akcji ... Najpierw pokazuję zamontowane woluminy (i że MUZYKA jest oparta na Sambie) w górnym oknie, a następnie uruchamiam fswatch
w lewym dolnym oknie, a następnie dokonuję modyfikacji w systemie plików w górnym oknie możesz zobaczyć je w Finderze, a także w lewym dolnym oknie, które fswatch
śledzi wszystkie zdarzenia.
Można również użyć go do interakcji z innym programem, gdy wykrywane są zdarzenia, jak to (wyciąg z fswatch
podręcznika):
Prawdopodobnie najprostszy sposób na rurze fswatch
do innego programu w celu do reagowania na zdarzenia jest używając xargs:
$ fswatch -0 [opts] [paths] | xargs -0 -n 1 -I {} [command]
fswatch -0 podzieli rekordy za pomocą znaku NUL.
xargs -0 podzieli rekordy za pomocą znaku NUL. Jest to wymagane, aby poprawnie dopasować impedancję z zegarem fswatch.
xargs -n 1 wywoła polecenie każdego rekordu. Jeśli chcesz zrobić to co X rekordy, następnie użyć xargs -n x.
xargs -I {} zastąpi wystąpienie {} w poleceniu z analizowanym argumentem. Jeśli uruchomione polecenie nie potrzebuje nazwy ścieżki zdarzenia, po prostu usuń tę opcję. Jeśli wolisz używać innego ciągu zastępującego, zastąp {} swoim.
O ile protokół udostępniania plików nie pozwala serwerowi powiadamiać klienta o zmianach (i nie znam żadnych protokołów, które to robią), nie będzie to możliwe. –
To ma sens, ale wciąż: w jaki sposób Finder to robi? – Jamie
@Gordon - NTFS i SMB umożliwiają powiadamianie klientów o zmianach (nawet mapowane dyski sieciowe, jeśli jest to system Windows z systemem plików NTFS). Ale komputery z systemem Linux, które współdziałam z uruchomieniem SAMBA, nie uruchamiają zdarzenia. Tak więc jego rodzaj jak tylko Microsoft zapewnia tę funkcję, mimo że każdy dostawca powinien być w stanie ją zaoferować. – jww