Sprawdzasz zmiany folderów / plików za pomocą Automatora?
9
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.
Nie sądzę, aby było to możliwe w Automatorze. Prawdopodobnie możesz coś zrobić za pomocą skryptów (i akcji skryptowych, jeśli potrzebujesz, aby działał w Automatorze), ale musisz uruchomić przepływ pracy, aby wykryć zmiany od ostatniego uruchomienia.
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 findw 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.
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 isnot empty.
Odpowiedzi:
Możesz dodać akcję „Uruchom skrypt powłoki” za pomocą polecenia:
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>
: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.źródło
Nie wiem, jak to zrobić za pomocą Automatora, ale w App Store jest aplikacja o nazwie Folder Watch, która może robić to, o co prosisz.
źródło
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.
źródło
Możesz sprawdzić wcześniejszą odpowiedź , ale brzmi to tak, jak chcesz
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.
źródło