Làm thế nào để viết một tập lệnh chạy bất cứ khi nào một tập tin mới được thêm vào một thư mục cụ thể?


2

Tôi chưa bao giờ viết một kịch bản cho OS X và tôi thực sự không biết tôi sẽ sử dụng công cụ kịch bản nào cho nhiệm vụ này.

Đây là mã giả cho tập lệnh tôi muốn xây dựng:

whenever a new file X is added to the directory D do:
copy X 
paste X to the directory B

Tôi không muốn ai đó viết mã này cho tôi, tôi muốn biết tôi nên sử dụng công cụ nào (ngôn ngữ có thể) để viết tập lệnh này và cách làm cho OS X chạy nó bất cứ khi nào sự kiện xảy ra.

Tôi không biết những gì để gắn thẻ này. Hãy đóng góp. Vui lòng chuyển hướng nếu đây không phải là diễn đàn phù hợp cho câu hỏi này.


Tôi muốn nói hãy thử sử dụng AppleScript trước
user2277872

1
Thư mục hành động?
perhapsmaybeharry

Câu trả lời:


1

Rất đơn giản sử dụng Automator & amp; Tác vụ thư mục.

  • Tạo một hành động thư mục mới, sau đó đặt nguồn thành thư mục A
  • chọn một hành động Finder từ cột bên trái,
  • kéo 'Sao chép các mục Finder' từ trung tâm sang phải
  • đặt đích đến Thư mục B.
  • Đặt tên cho nó & amp; tiết kiệm.

enter image description here

Mỗi khi bất cứ thứ gì được thêm vào A, nó sẽ tự động sao chép vào B.


Và nếu bạn muốn làm điều gì đó phức tạp hơn, Automator có hành động 'Run Shell Script' mà bạn có thể sử dụng với một số biến thể tập lệnh shell, Ruby, Perl và Python. Nếu bạn đi xuống tuyến đường này, tôi sẽ ủng hộ việc gắn bó với sh / bash hoặc bất kỳ ngôn ngữ nào mà bạn cảm thấy thoải mái nhất.
Geoff Nixon

Tôi đã phát hiện thấy có một lỗi trong Hành động tự động đơn giản này là nếu một tệp đã tồn tại trong A và bạn trả lời Thay thế, nó không được sao chép sang B. Điều này đã được thử nghiệm trong OS X 10.8.5 và có thể không một vấn đề trong các phiên bản khác của OS X.
user3439894

0

Tôi chỉ có thể nghĩ ra hai cách yêu cầu (miễn phí) gói bên thứ ba:

1 Một gói được gọi là cơ quan giám sát por giám sát sự kiện hệ thống tập tin và hành động kích hoạt. Đây thực sự là một gói python, nhưng nó cũng bao gồm một tiện ích shell để bạn có thể tạo tập lệnh từ thiết bị đầu cuối mà không cần mã hóa.

lần 2. sử dụng một chương trình nhỏ gọi là fswatch sử dụng API sự kiện hệ thống tệp của Mac OS để giám sát các tệp và thư mục của bạn và có thể kích hoạt tập lệnh.

Cả hai đều yêu cầu bạn cài đặt gói / chương trình và dường như làm những gì bạn yêu cầu. Hy vọng điều này ít nhất chỉ cho bạn đi đúng hướng.

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.