Có cách nào để kiểm tra thư mục / tệp để thay đổi (bao gồm thêm tệp, xóa tệp, thay đổi trong tệp, ...). Action Hành động thư mục 'trong Automator chỉ kiểm tra nếu có bất kỳ tệp nào được thêm mới.
Có cách nào để kiểm tra thư mục / tệp để thay đổi (bao gồm thêm tệp, xóa tệp, thay đổi trong tệp, ...). Action Hành động thư mục 'trong Automator chỉ kiểm tra nếu có bất kỳ tệp nào được thêm mới.
Câu trả lời:
Bạn có thể thêm hành động "Run Shell Script" bằng lệnh:
find <directory> -newermm <reference_file>
Điều này sẽ cung cấp cho bạn tất cả các tệp và thư mục bên trong <directory>
đã thay đổi kể từ lần thay đổi cuối cùng <reference_file>
. Chỉ cần đảm bảo bạn sửa đổi <reference_file>
mỗi lần bạn chạy tập lệnh Automator.
Ngoài ra, hãy xem trang tìm thủ công (nhập man find
vào thiết bị đầu cuối) để có thêm tùy chọn. Tìm là rất mạnh mẽ và tinh chỉnh hơn nữa tìm kiếm của bạn thường là một vài lựa chọn bổ sung. Ví dụ: chỉ tìm kiếm các thư mục được sửa đổi sau <reference_file>
:
find <directory> -type d -newermm <reference_file>
Nếu phiên bản đi kèm với OSX là không đủ, bạn cũng có thể dùng thử phiên bản đi kèm findutils
(brew, macports, v.v.) có nhiều tính năng hơn một chút.
Vì vậy, lần trước tôi đã kiểm tra, Automater đang sử dụng Applescript trong nền để tạo kịch bản cho hành động của bạn. Applescript không có nhiều chiều sâu cho nó. Mặc dù nó có thể lấy danh sách các tệp trong một thư mục (và do đó bạn có thể tìm ra khi nào đó bị xóa), tôi không tin rằng nó có thể tính toán các thay đổi đối với một tệp.
Những gì bạn thực sự cần khai thác là thông báo hệ thống tập tin. Và vì đó là một con quái vật, tôi sẽ lấy lời khuyên của kraymer và sử dụng launchd. Nó có các hook để thực thi bất cứ lúc nào nội dung của một thư mục được thay đổi. Lingon (xem thêm trang SourceForge lỗi thời của nó ) là một ứng dụng tuyệt vời để giúp mọi người nhảy vào launchd. Bạn có thể viết kịch bản / ứng dụng tự động hóa của bạn để làm bất cứ điều gì bạn định làm khi thư mục của bạn được sửa đổi và chỉ cần thực hiện lệnh gọi launchd đó.
Bạn có thể kiểm tra câu trả lời trước đó của tôi , nhưng có vẻ như bạn muốn
fs_usage -f filesys
Launchd không phải là cách để thay đổi tập tin, fs_usage sử dụng máy cơ bản hỗ trợ ánh đèn sân khấu.
EDIT: Tôi hoàn toàn sai ở đây. Launchd có chính xác chức năng cần thiết, tức là: làm một cái gì đó trên một tập tin hoặc thư mục thay đổi.
Bạn tạo một tập tin .plist.
Hét lên "XML SUX CHO PHIM CONF!" (Nó thực sự có.)
và bạn sẽ muốn sử dụng một hoặc cả hai phím bên dưới trong công việc khởi động của mình.
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.