ฉันได้สิ่งนี้เพื่อทำงานกับ Sierra 10.12.3 ใน Automator
ก่อนอื่นฉันสร้างสคริปต์เวอร์ชันนี้: มันทำงานในลักษณะเดียวกับของ freefly42 เพียงวิธีการเขียนแบบเดียวกัน
หากต้องการแปลลำโพงที่ไม่ใช่เจ้าของภาษาสิ่งที่มันทำคือ:
หากรันด้วยอาร์กิวเมนต์ commandline จะพยายามดูว่าอาร์กิวเมนต์นั้นเป็นไดเรกทอรีหรือไม่และถ้าไดเรกทอรีนั้นมีไฟล์ชื่อ ".disable_osx_metadata"
หากไฟล์พิเศษไม่อยู่ที่นั่นแสดงว่าไม่มีอะไรเกิดขึ้น ไดรฟ์นั้นถูกละเว้น
หากมีไฟล์พิเศษสคริปต์จะลบข้อมูลเมตาของ osx ทั้งหมดและสร้างรายการใหม่เล็ก ๆ น้อย ๆ ซึ่งป้องกันสิ่งอื่น ตัวอย่างเช่นการสร้างไฟล์ที่ชื่อว่า. ถังขยะทำให้ระบบปฏิบัติการไม่สามารถสร้างไดเรกทอรีที่ชื่อว่า. ถังขยะจากนั้นจึงเขียนไฟล์ในนั้น
หากรันโดยไม่มีอาร์กิวเมนต์มันจะรันตัวเองหนึ่งครั้งสำหรับแต่ละไดเร็กทอรีใน / Volumes
ดังนั้นหากคุณรันด้วยตนเองหรือคลิกที่มันมันจะตรวจสอบไดรฟ์ที่แนบมาทั้งหมด หากคุณสร้างเวิร์กโฟลว์ใน Automator ดังนั้น Automator จะเรียกใช้เมื่อใดก็ตามที่มีการเชื่อมต่อไดรฟ์สำหรับไดรฟ์นั้นเท่านั้น
#!/bin/bash
x=.disable_osx_metadata
[[ "$1" ]] || exec find /Volumes -type d -maxdepth 1 -mindepth 1 -exec $0 {} \;
[[ -e "$1/$x" ]] || exit 0
mdutil -i off "$1"
rm -rf "$1"/.{,_.}{fseventsd,Spotlight-V*,Trashes}
mkdir "$1/.fseventsd"
touch "$1/.fseventsd/no_log" "$1/.Trashes" "$1/$x"
บันทึกเป็น "disable_osx_metadata", chmod 755, คัดลอกไปยัง / usr / local / bin
$ cd Documents/disable_osx_metadata/
$ chmod 755 disable_osx_metadata
$ sudo cp disable_osx_metadata /usr/local/bin
จากนั้นเปิด Automator, New, Folder Action
จากนั้นฉันก็พบว่าแม้ใน Sierra 10.12.3 คุณยังคงสามารถเพิ่มไดเรคทอรี / ไดรฟ์ข้อมูลใน Automator โดยวิธีที่ไม่ชัดเจน
ไปที่ตัวค้นหาไฟล์ "ไปที่โฟลเดอร์ ... " เขียนด้วยตนเองใน "/ เล่ม" แล้วกด Enter
ตอนนี้จะแสดงหน้าต่างที่มีไดรฟ์ HD และยูเอสบีของคุณ แต่ไม่มีโฟลเดอร์ "/ Volumes" ที่ชัดเจนให้คลิก แต่แถบหัวเรื่องพูดว่า "/ เล่ม" และจะปรากฏที่ด้านล่างด้วย
คุณสามารถลากไอคอนโฟลเดอร์ที่อยู่ถัดจาก "/ เล่ม" จากแถบชื่อเรื่องหรือจากด้านล่างไปยัง Automator และวางไว้ที่ "การกระทำของโฟลเดอร์จะรับไฟล์และโฟลเดอร์ที่เพิ่มไปที่: [______]"
ปิดตัวค้นหา
ย้อนกลับไปใน Automator: ทางด้านซ้ายเลื่อนลงและลาก "รับเนื้อหาของโฟลเดอร์" ไปทางขวาแล้วปล่อย
จากนั้นทางซ้ายอีกครั้งเลื่อนลงและลาก "เรียกใช้สคริปต์เชลล์" ไปทางขวาและวางลงใต้ "รับเนื้อหาโฟลเดอร์"
เปลี่ยน "Pass input:" เป็น "as arguments" Shell: [/ bin / bash] Pass input: [as arguments]
จากนั้นลากสคริปต์จาก / usr / local / bin ไปที่กล่องภายใต้ "Run Shell Script" ดังนั้นจึงระบุว่า "/ usr / local / bin / disable_osx_metadata"
ไฟล์บันทึก, disable_osx_metadata.workflow
สำหรับการอ้างอิงสิ่งนี้จะได้รับการบันทึกใน:
/ Users / YOUR_NAME / Library / Workflows / Applications / Folder Actions
หากคุณบันทึกบางอย่างผิดปกติฉันคิดว่าคุณต้องไปที่ Finder ใน Finder เพื่อลบมันด้วยตัวเอง
สุดท้ายสำหรับไดรฟ์ usb ใหม่ที่คุณต้องการป้องกันคุณต้องสร้างไฟล์ชื่อ ".disable_osx_metadata" ในโฟลเดอร์รูท
คุณสามารถทำได้ในเทอร์มินัล: $ touch / เล่ม / NO \ NAME / .disable_osx_metadata
หรือเพียงแค่เก็บไฟล์ข้อความเล็ก ๆ โดยใช้ชื่อที่มองเห็นได้ (ไม่มีจุดนำ) แล้วคัดลอกไปยังรูทของไดรฟ์ usb ใหม่แล้วเปลี่ยนชื่อเป็น. disable_osx_metadata หลังจากคัดลอก
ตอนนี้ไดรฟ์นั้นจะได้รับการทำความสะอาดทุกครั้งที่คุณติดตั้งนับจากนี้เป็นต้นไป
ไม่สะอาดอย่างที่ฉันต้องการ คุณต้องทำให้สกปรกน้อยลงเพื่อบอกให้ OS ไม่ทำให้สกปรกมากขึ้น ดูเหมือนว่าไม่มีทางที่จะทำให้ระบบปฏิบัติการปล่อยทิ้งไว้เพียงอย่างเดียวและไม่เพิ่มไฟล์ใด ๆ ที่คุณไม่ได้ขอ
สิ่งที่ต้องทำ: เพิ่มฟังก์ชั่นเปิด / ปิดการใช้งานเพื่อสร้าง / ลบไฟล์ดอท
สิ่งที่ต้องทำ: สิ่งนี้ไม่ได้ป้องกันไฟล์. DS_Store ในทุก ๆ ไดเรกทอรี
สิ่งที่ต้องทำ: มันเป็นไปได้ที่จะจัดทำสคริปต์และไฟล์ foo.workflow เพื่อให้ผู้ใช้สามารถข้ามคำแนะนำส่วนใหญ่ได้หรือไม่? ฉันเห็นว่ามีตัวเลือก "ส่งออก" ใน Automator ที่สร้างไฟล์แพ็คเกจบางประเภท
สิ่งที่ต้องทำ: อาจล้าสมัยโพสต์ทั้งหมดนี้ เวิร์กโฟลว์ applescript + automator นี้อาจจะดีกว่า:
https://superuser.com/questions/319553/does-anyone-have-a-mac-terminal-script-to-remove-have-files/814104#814104