มีวิธีการตรวจสอบการเปลี่ยนแปลงโฟลเดอร์ / ไฟล์ (รวมถึงการเพิ่มไฟล์, การลบไฟล์, การเปลี่ยนแปลงในไฟล์, ... ) 'การกระทำของโฟลเดอร์' ใน Automator ตรวจสอบเฉพาะว่ามีการเพิ่มไฟล์ใด ๆ
มีวิธีการตรวจสอบการเปลี่ยนแปลงโฟลเดอร์ / ไฟล์ (รวมถึงการเพิ่มไฟล์, การลบไฟล์, การเปลี่ยนแปลงในไฟล์, ... ) 'การกระทำของโฟลเดอร์' ใน Automator ตรวจสอบเฉพาะว่ามีการเพิ่มไฟล์ใด ๆ
คำตอบ:
คุณสามารถเพิ่มแอ็คชัน "Run Shell Script" ด้วยคำสั่ง:
find <directory> -newermm <reference_file>
ซึ่งจะทำให้คุณไฟล์และไดเรกทอรีทั้งหมดภายในที่มีการเปลี่ยนแปลงตั้งแต่การเปลี่ยนแปลงล่าสุดของ<directory>
<reference_file>
เพียงให้แน่ใจว่าคุณแก้ไข<reference_file>
ทุกครั้งที่คุณเรียกใช้สคริปต์ Automator
ดูที่หน้าการค้นหาด้วยตนเอง (ป้อนman find
ในเทอร์มินัล) เพื่อดูตัวเลือกเพิ่มเติม การค้นหานั้นมีประสิทธิภาพมากและการปรับการค้นหาของคุณต่อไปนั้นเป็นเรื่องของตัวเลือกเพิ่มเติมสองสามตัว เช่นเพื่อค้นหาเฉพาะไดเรกทอรีที่แก้ไขหลังจาก<reference_file>
:
find <directory> -type d -newermm <reference_file>
หากรุ่นที่มาพร้อมกับ OSX ไม่เพียงพอคุณสามารถลองรุ่นที่มาพร้อมกับfindutils
(ชง macports ฯลฯ ) ซึ่งควรมีคุณสมบัติเพิ่มเติมเล็กน้อย
ฉันไม่รู้วิธีการทำสิ่งนี้กับ Automator แต่มีแอพใน App Store ชื่อ Folder Watch ที่อาจทำสิ่งที่คุณขอ
ดังนั้นครั้งสุดท้ายที่ฉันตรวจสอบ Automater ใช้ Applescript ในพื้นหลังเพื่อเขียนสคริปต์การกระทำของคุณ Applescript มีความลึกไม่มากนัก ในขณะที่สามารถรับรายการไฟล์ในไดเรกทอรี (และดังนั้นคุณสามารถค้นหาเมื่อบางสิ่งถูกลบ) แต่ฉันไม่เชื่อว่ามันสามารถคำนวณการเปลี่ยนแปลงของไฟล์ได้
สิ่งที่คุณต้องใช้ในการควบคุมคือการแจ้งเตือนระบบไฟล์ และเนื่องจากเป็นสัตว์ร้ายฉันจะรับคำแนะนำของ kraymer และใช้ launchd มันมี hooks ที่จะดำเนินการเมื่อใดก็ตามที่เนื้อหาของโฟลเดอร์ถูกเปลี่ยน Lingon (ดูที่หน้า SourceForge ที่ล้าสมัย) เป็นแอปพลิเคชั่นที่ยอดเยี่ยมสำหรับการช่วยเหลือผู้คนในการเข้าสู่ launchd คุณสามารถเขียนสคริปต์ / แอปพลิเคชัน automator ของคุณเพื่อทำสิ่งที่คุณวางแผนที่จะทำเมื่อไดเรกทอรีของคุณได้รับการแก้ไขและเพียงแค่มีการเรียกงาน taskd ที่
คุณสามารถตรวจสอบคำตอบของฉันก่อนหน้านี้แต่ดูเหมือนว่าคุณต้องการ
fs_usage -f filesys
Launchd ไม่ใช่วิธีการเปลี่ยนแปลงไฟล์ แต่อย่างใด fs_usage ใช้เครื่องจักรพื้นฐานที่ให้ความสำคัญกับสปอตไลท์
แก้ไข: ฉันผิดอย่างเต็มที่ที่นี่ Launchd มีฟังก์ชั่นที่ต้องการเช่น: ทำบางสิ่งบางอย่างในไฟล์หรือเปลี่ยนไดเรกทอรี
คุณสร้างไฟล์. plist
กรีดร้อง "XML SUX สำหรับไฟล์ CONF!" (มันทำจริงๆ)
และคุณต้องการใช้หนึ่งหรือทั้งสองปุ่มด้านล่างในงาน launchd ของคุณ
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.