Czy istnieje sposób sprawdzenia folderu / pliku pod kątem zmian (obejmuje dodawanie plików, usuwanie plików, zmiany w plikach, ...). „Akcja folderów” w Automatorze sprawdza tylko, czy jakieś pliki są nowo dodane.
Czy istnieje sposób sprawdzenia folderu / pliku pod kątem zmian (obejmuje dodawanie plików, usuwanie plików, zmiany w plikach, ...). „Akcja folderów” w Automatorze sprawdza tylko, czy jakieś pliki są nowo dodane.
Odpowiedzi:
Możesz dodać akcję „Uruchom skrypt powłoki” za pomocą polecenia:
find <directory> -newermm <reference_file>
To da ci wszystkie pliki i katalogi <directory>
, które zmieniły się od ostatniej zmiany <reference_file>
. Upewnij się tylko, że modyfikujesz za <reference_file>
każdym razem, gdy uruchamiasz skrypt Automatora.
Zobacz także stronę podręcznika wyszukiwania (wprowadź man find
w terminalu), aby uzyskać więcej opcji. Znajdź jest bardzo wydajne, a dalsze udoskonalenie wyszukiwania jest zwykle kwestią kilku dodatkowych opcji. Np. Aby wyszukać tylko katalogi zmodyfikowane po <reference_file>
:
find <directory> -type d -newermm <reference_file>
Jeśli wersja dostarczana z OSX jest niewystarczająca, możesz również wypróbować wersję dostarczoną z findutils
(brew, macports itp.), Która powinna mieć nieco więcej funkcji.
Więc kiedy ostatnio sprawdzałem, Automater używa Applescript w tle do pisania skryptów twoich działań. Applescript nie ma w tym wiele głębi. Chociaż może uzyskać listę plików w katalogu (i dlatego możesz dowiedzieć się, kiedy coś zostanie usunięte), nie sądzę, aby mógł obliczyć zmiany w pliku.
To, czego naprawdę potrzebujesz, to powiadomienia systemu plików. A ponieważ jest to bestia, skorzystam z porady Kraymera i skorzystam z wodowania. Ma zaczepy do wykonania przy każdej zmianie zawartości folderu. Lingon (patrz także jego nieaktualna strona SourceForge ) to świetna aplikacja do pomocy ludziom w uruchomieniu. Możesz napisać skrypt / aplikację automatyzującą, aby zrobić wszystko, co planowałeś zrobić, kiedy katalog został zmodyfikowany i po prostu wywołać wywołane zadanie.
Możesz sprawdzić wcześniejszą odpowiedź , ale brzmi to tak, jak chcesz
fs_usage -f filesys
Uruchomienie nie jest sposobem na zmiany plików, fs_usage używa bazowej maszyny, która napędza światło reflektorów.
EDYCJA: Jestem całkowicie w błędzie. Launchd ma dokładnie taką wymaganą funkcjonalność, tj .: zrób coś na zmianie pliku lub katalogu.
Tworzysz plik .plist.
Krzycz „XML SUX DLA PLIKÓW KONF!” (Naprawdę.)
i będziesz chciał użyć jednego lub obu poniższych kluczy w uruchomionej pracy.
WatchPaths <array of strings>
This optional key causes the job to be started if any one of the listed
paths are modified.
QueueDirectories <array of strings>
Much like the WatchPaths option, this key will watch the paths for modi-
fications. The difference being that the job will only be started if the
path is a directory and the directory is not empty.