Apakah ada cara untuk memeriksa folder / file untuk perubahan (termasuk menambahkan file, menghapus file, perubahan file, ...). 'Tindakan folder' di Automator hanya memeriksa apakah ada file yang baru ditambahkan.
Apakah ada cara untuk memeriksa folder / file untuk perubahan (termasuk menambahkan file, menghapus file, perubahan file, ...). 'Tindakan folder' di Automator hanya memeriksa apakah ada file yang baru ditambahkan.
Jawaban:
Anda dapat menambahkan tindakan "Jalankan Shell Script" dengan perintah:
find <directory> -newermm <reference_file>
Ini akan memberi Anda semua file dan direktori di dalam <directory>
yang telah berubah sejak perubahan terakhir <reference_file>
. Pastikan Anda memodifikasi <reference_file>
setiap kali Anda menjalankan skrip Automator.
Lihat juga halaman manual find (masukkan man find
di terminal) untuk opsi lainnya. Temukan sangat kuat dan semakin menyempurnakan pencarian Anda biasanya adalah masalah beberapa opsi tambahan. Misalnya untuk mencari hanya direktori yang diubah setelah <reference_file>
:
find <directory> -type d -newermm <reference_file>
Jika versi yang dikirimkan dengan OSX tidak cukup, Anda juga dapat mencoba versi yang menyertai findutils
(minuman, macports dll) yang seharusnya memiliki fitur sedikit lebih banyak.
Jadi terakhir kali saya memeriksa, Automater menggunakan Applescript di latar belakang untuk skrip tindakan Anda. Applescript tidak memiliki kedalaman untuk itu. Meskipun bisa mendapatkan daftar file dalam direktori (dan karena itu Anda bisa mengetahui kapan sesuatu terhapus), saya tidak percaya itu bisa menghitung perubahan pada file.
Yang benar-benar Anda butuhkan untuk memanfaatkannya adalah pemberitahuan sistem file. Dan karena itu binatang buas, saya akan mengambil saran kraymer dan menggunakan launchd. Ini memiliki kait untuk mengeksekusi kapan saja isi folder diubah. Lingon (lihat juga halaman SourceForge yang sudah usang ) adalah aplikasi yang bagus untuk membantu orang-orang terjun ke launchd. Anda dapat menulis skrip / aplikasi automator Anda untuk melakukan apa pun yang Anda rencanakan untuk dilakukan ketika direktori Anda telah dimodifikasi dan hanya perlu memanggil task launchd itu.
Anda dapat memeriksa jawaban saya sebelumnya , tetapi sepertinya Anda inginkan
fs_usage -f filesys
Launchd bukan cara untuk mencari perubahan file, fs_usage menggunakan mesin yang mendasari yang menjadi sorotan.
EDIT: Saya benar-benar salah di sini. Launchd memiliki fungsionalitas yang diperlukan, yaitu: melakukan sesuatu pada perubahan file atau direktori.
Anda membuat file .plist.
Scream "XML SUX UNTUK CONF FILES!" (Memang benar.)
dan Anda ingin menggunakan salah satu atau kedua tombol di bawah ini dalam pekerjaan launchd Anda.
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.