Kiểm tra thay đổi thư mục / tập tin bằng Automator?


9

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.


Tôi không nghĩ rằng điều này thực sự có thể với Automator. Bạn có thể có thể làm gì đó với một số tập lệnh (và các hành động kịch bản nếu bạn cần nó để hoạt động bên trong Automator), nhưng bạn phải chạy quy trình làm việc để phát hiện các thay đổi kể từ lần chạy cuối cùng.
jtjacques

3
Bạn đã xem launchd chưa? cf stackoverflow.com/questions/1515730/ từ
kraymer

Câu trả lời:


5

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 findvà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.


1

Tôi không biết cách nào để thực hiện việc này với Automator, nhưng có một ứng dụng trong App Store có tên là Thư mục đồng hồ có thể thực hiện những gì bạn yêu cầu.


1

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 đó.


1

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.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.