วิธีการเรียกใช้งานการกระทำโฟลเดอร์หรือสคริปต์อัตโนมัติอื่นเมื่อฉันทำการเปลี่ยนแปลงโฟลเดอร์?


4

วิธีการเรียกใช้งานการกระทำโฟลเดอร์หรือสคริปต์อัตโนมัติอื่นเมื่อฉันทำการเปลี่ยนแปลงโฟลเดอร์? และโดยการเปลี่ยนแปลงฉันหมายถึงไม่เพียง แต่ลบหรือแทรกไฟล์ใหม่สิ่งที่สำคัญที่สุดสำหรับฉันคือเมื่อเนื้อหาของไฟล์เปลี่ยนไป



คุณมีสองคำตอบที่ยอดเยี่ยม ช่วยคุณได้บ้างไหม?
bmike

คำตอบ:


1

การใช้ launchd คุณสามารถบันทึกรายการคุณสมบัติเช่นนี้ใน ~ / Library / LaunchAgents / และโหลดด้วยสิ่งที่ชอบ launchctl load ~/Library/LaunchAgents/automator_test.plist หรือโดยออกจากระบบและกลับเข้ามาใหม่

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>automator_test</string>
    <key>ProgramArguments</key>
    <array>     
        <string>automator</string>
        <string>/Users/username/Desktop/Test.workflow</string>
    </array>
    <key>WatchPaths</key>
    <array>
        <string>/Users/username/Desktop/</string>
    </array>
    <key>StartInterval</key>
    <integer>0</integer> <!-- run at most every 0 seconds, by default 10 -->
</dict>
</plist>

Launchd จะตรวจจับการเปลี่ยนแปลงไฟล์เมื่อถูกบันทึกแบบอะตอมเท่านั้น (หรือถูกลบและสร้างใหม่ทุกครั้งที่มีการบันทึก) แอป OS X ส่วนใหญ่ทำการบันทึกแบบปรมาณู แต่ตัวอย่างเช่น TextMate และ vim ไม่ได้


ฉันยังไม่ได้ทดสอบ แต่ยังทดสอบเมื่อฉันกลับถึงบ้าน แต่จะทำให้เป็นอัตโนมัติทุกครั้งที่ฉันบันทึกการเปลี่ยนแปลงไฟล์ในโฟลเดอร์หรือไม่ ฉันเริ่มอ่านบางอย่างเกี่ยวกับ launchctl ไม่ใช่แอพ / บริการที่แนะนำสำหรับสิ่งนั้น แต่ฉันจำไม่ได้ว่าอ่านที่ไหน
tenshimsm

ฉันทำอย่างนั้นและไม่มีอะไรเกิดขึ้น
tenshimsm

ฉันทดสอบอีกครั้งและใช้งานได้สำหรับฉัน คุณเปลี่ยน username? คุณต้อง launchctl unload $path && launchctl load $path เพื่อใช้การเปลี่ยนแปลง
Lri

ขอบคุณ แต่มันใช้งานไม่ได้ตามที่ฉันต้องการ มันทำสิ่งที่กระทำของโฟลเดอร์ซึ่งจะถูกเรียกถ้าฉันแทรกย้ายหรือลบบางสิ่งบางอย่างภายในโฟลเดอร์ ฉันแก้ไขไฟล์ HTML ภายในโฟลเดอร์และไม่มีอะไรเกิดขึ้น และมันจะไม่เกิดซ้ำ
tenshimsm

คุณพูดถูกว่ามันไม่เวียนเกิดซ้ำ แต่มันควรถูกกระตุ้นเมื่อไฟล์ถูกแก้ไขหรือไฟล์หรือโฟลเดอร์ถูกย้ายลบหรือสร้าง
Lri

1

ความต้องการประเภทนี้มีความซับซ้อนมากกว่า fsevents hooks แสดงเป็น Actions ของโฟลเดอร์ ฉันแนะนำให้ใช้ของ Paul Kim สีน้ำตาลแดง ซึ่งจะช่วยให้คุณสร้างกฎ“ ดูและตอบสนอง” ที่มีความละเอียดและความซับซ้อนไม่ จำกัด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.