Tôi đã làm điều này để làm việc trên Sierra 10.12.3 trong Automator.
Đầu tiên, tôi tạo phiên bản kịch bản này: Nó hoạt động giống như của freefly42, chỉ là một cách viết khác nhau.
Để dịch cho người nói bash không bản địa, những gì nó làm là:
Nếu chạy với một đối số dòng lệnh, nó sẽ cố gắng xem liệu đối số có phải là một thư mục không và liệu thư mục đó có chứa một tệp có tên ".disable_osx_metadata" hay không.
Nếu tập tin đặc biệt không có ở đó, thì không có gì xảy ra. Ổ đĩa đó bị bỏ qua.
Nếu có tệp đặc biệt, tập lệnh sẽ xóa tất cả siêu dữ liệu osx và tạo một vài mục nhỏ mới để ngăn chặn mọi thứ khác. Chẳng hạn, việc tạo tệp có tên .Trash ngăn hệ điều hành tạo thư mục có tên .Trash và sau đó ghi tệp vào đó.
Nếu chạy không có đối số, nó sẽ tự chạy một lần cho mỗi thư mục trong / Tập.
Vì vậy, nếu bạn chạy thủ công hoặc nhấp vào nó, nó sẽ kiểm tra tất cả các ổ đĩa được đính kèm. Nếu bạn tạo một quy trình công việc trong Automator, thì Automator sẽ chạy nó bất cứ khi nào một ổ đĩa được gắn vào, chỉ cho ổ đĩa đó.
#!/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"
Lưu dưới dạng "vô hiệu hóa_osx_metadata", chmod 755, sao chép vào / usr / local / bin.
$ cd Documents/disable_osx_metadata/
$ chmod 755 disable_osx_metadata
$ sudo cp disable_osx_metadata /usr/local/bin
Sau đó mở Automator, New, Thư mục hành động
Sau đó, tôi thấy rằng ngay cả trong Sierra 10.12.3, bạn vẫn có thể thêm thư mục / Tập trong Automator, theo một cách không rõ ràng.
Chuyển đến Finder, Tệp, "Chuyển đến Thư mục ...", viết thủ công vào "/ Tập" và nhấn Enter.
Bây giờ, điều này cho bạn thấy một cửa sổ với các ổ đĩa HD và USB, nhưng không có thư mục "/ Tập" rõ ràng để nhấp vào. Nhưng thanh tiêu đề ghi "/ Tập" và nó cũng xuất hiện ở phía dưới.
Bạn có thể kéo biểu tượng thư mục bên cạnh "/ Tập", từ thanh tiêu đề hoặc từ dưới cùng, đến Trình tự động hóa và thả vào "Hành động thư mục nhận tệp và thư mục được thêm vào: [______]"
Đóng Finder.
Quay lại trong Automator: ở bên trái, cuộn xuống và kéo "Lấy nội dung thư mục" sang bên phải và thả nó.
Sau đó ở bên trái một lần nữa, cuộn xuống và kéo "Run Shell Script" sang bên phải và thả xuống bên dưới "Lấy nội dung thư mục".
Thay đổi "Pass input:" thành "as argument". Shell: [/ bin / bash] Truyền đầu vào: [làm đối số]
Sau đó kéo tập lệnh từ / usr / local / bin vào hộp bên dưới "Run Shell Script" để nó nói "/ usr / local / bin / eac_osx_metadata"
Tập tin, lưu, vô hiệu hóa_osx_metadata.workflow
Để tham khảo, điều này được lưu trong:
/ Users / YOU_NAME / Library / Workflows / Application / Directory Action
Nếu bạn lưu một cái gì đó sai, tôi nghĩ bạn phải điều hướng thủ công ở đó trong Finder để xóa nó.
Cuối cùng, đối với mỗi ổ USB mới mà bạn muốn bảo vệ, bạn phải tạo một tệp có tên ".disable_osx_metadata" trong thư mục gốc.
Bạn có thể làm điều đó trong Terminal: $ touch / Tập / NO \ NAME / .disable_osx_metadata
Hoặc chỉ cần giữ một tệp văn bản nhỏ xung quanh với một tên hiển thị (không có dấu chấm hàng đầu) và sao chép nó vào thư mục gốc của bất kỳ ổ đĩa USB mới nào và đổi tên nó .disable_osx_metadata sau khi sao chép.
Ổ đĩa đó bây giờ được làm sạch mỗi lần bạn gắn nó từ bây giờ.
Không sạch như tôi muốn. Bạn phải làm ô nhiễm ổ đĩa một chút, để nói với hệ điều hành không làm ô nhiễm nó nhiều hơn. Dường như không có cách nào khiến HĐH chỉ đơn giản là để nó một mình và không thêm bất kỳ tệp nào mà bạn không yêu cầu.
TODO: Thêm chức năng bật / tắt để tạo / xóa tệp dấu chấm.
TODO: Điều này không ngăn chặn các tệp .DS_Store trong mọi thư mục.
TODO: Có thể đóng gói tập lệnh và tệp foo.workflow để người dùng có thể bỏ qua hầu hết các hướng dẫn thủ công này không? Tôi thấy có một tùy chọn "xuất" trong Automator tạo ra một số loại tệp gói.
TODO: Có thể lỗi thời toàn bộ bài này. Quy trình làm việc của applescript + automator này có thể tốt hơn:
https://superuser.com/questions/319553/does-anyone-have-a-mac-terminal-script-to-remove-hidden-files/814104#814104