Bunu Automator'daki Sierra 10.12.3'te çalışmak üzere aldım.
İlk önce, betiğin bu versiyonunu yaptım:
Freefly42 ile aynı şekilde çalışır, aynı şeyi yazmanın sadece farklı bir yoludur.
Yerel olmayan bash hoparlörlerini çevirmek için yaptığı şey:
Bir komut satırı argümanı ile çalıştırılırsa, argümanın bir dizin olup olmadığını ve bu dizinin ".disable_osx metadata" adlı bir dosya içerip içermediğini anlamaya çalışır.
Özel dosya orada değilse, hiçbir şey olmuyor. Bu sürücü göz ardı edilir.
Özel dosya varsa, komut dosyası tüm osx meta verilerini siler ve başka bir şeyi önleyen birkaç küçük yeni öğe oluşturur. Örneğin, .Trashes adlı bir dosya oluşturmak, işletim sisteminin .Trashes adlı bir dizin oluşturmasını ve ardından içine dosyalar yazmasını önler.
Bağımsız değişken olmadan çalıştırılırsa, / Volumes içindeki her dizin için bir kez çalışır.
Bu nedenle, eğer manuel olarak çalıştırırsanız veya üzerine tıklarsanız, bağlı tüm sürücüleri kontrol eder.
Automator'da bir iş akışı oluşturursanız, Automator bir sürücü bağlandığında sadece o sürücü için çalıştırır.
#!/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" olarak kaydedin, chmod 755, / usr / local / bin dizinine kopyalayın.
$ cd Documents/disable_osx_metadata/
$ chmod 755 disable_osx_metadata
$ sudo cp disable_osx_metadata /usr/local/bin
Ardından, Automator, New, Folder Action'u açın.
Daha sonra, Sierra 10.12.3'te bile, / Volumes dizinini hala Automator'a ekleyemeyeceğiniz bir yolla bulabileceğinizi öğrendim.
Finder, File, "Klasöre Git ..." e gidin, "/ Volumes" içine elle yazın ve Enter tuşuna basın.
Şimdi bu size HD ve USB sürücülerinizi içeren bir pencereyi gösteriyor, ancak tıklanacak belirgin bir "/ Cilt" klasörü yok.
Ancak başlık çubuğunda "/ Ciltler" yazıyor ve altta da görünüyor.
Klasör simgesini "/ Ciltler" in yanında, başlık çubuğundan veya alttan, Otomatikleştirici'nin üzerine sürükleyebilir ve "Klasör eylemine eklenen dosya ve klasörleri alır: [______]" üzerine bırakabilirsiniz.
Finder'ı kapatın.
Automator'a geri dönün: solda, "Klasör İçeriğini Al" öğesini sağa doğru kaydırın ve bırakın.
Sonra tekrar solda, "Çalıştır Shell Script" i sağa sürükleyin ve "Klasör İçeriğini Al" ın altına bırakın.
"Pass input:" ifadesini "argüman olarak" olarak değiştirin.
Shell: [/ bin / bash] Geçiş girişi: [bağımsız değişkenler]
Sonra komut dosyasını / usr / local / bin dizininden "Shell Komut Dosyasını Çalıştır" altındaki kutuya sürükleyin.
"/ Usr / local / bin / disable_osx_metadata"
Dosya, kaydet, disable_osx_metadata.workflow
Başvuru için, bu kaydedilir: / Kullanıcılar / YOUR_NAME / Kütüphane / İş Akışları / Uygulamalar / Klasör Eylemleri Yanlış bir şey kaydederseniz, silmek için Finder'da el ile gezinmeniz gerektiğini düşünüyorum.
Son olarak, korumak istediğiniz her yeni usb sürücü için, kök klasörde ".disable_osx_metadata" adlı bir dosya oluşturmanız gerekir.
Terminalde yapabilirsiniz:
$ touch / Ciltler / NO \ NAME / .disable_osx_metadata
Ya da küçük bir metin dosyasını görünür bir adla (baştaki nokta olmadan) tutun ve herhangi bir yeni usb sürücünün kök dizinine kopyalayın ve kopyaladıktan sonra .disable_osx_metadata adını değiştirin.
Bu sürücü şimdi her taktığınızda temizleniyor.
İstediğim kadar temiz değil. İşletim sistemine daha fazla kirlenmemesi için sürücüyü biraz kirletmeniz gerekir. İşletim sistemini basitçe yalnız bırakmanın ve istemediğiniz dosyaları eklemenin bir yolu yok gibi görünüyor.
TODO: Nokta dosyasını oluşturmak / kaldırmak için etkinleştirme / devre dışı bırakma işlevleri ekleyin.
TODO: Bu, her dizinde .DS_Store dosyalarını engellemez.
TODO: Bir betiği ve foo.workflow dosyasını paketlemek mümkün mü, böylece kullanıcı bu manuel yol tariflerinin çoğunu atlayabilir mi? Automator'da bir çeşit paket dosyası oluşturan bir "dışa aktarma" seçeneği olduğunu görüyorum.
TODO: Muhtemelen bütün bu yazıyı eskimiş. Bu applescript + automator iş akışı daha iyi olabilir: https://superuser.com/questions/319553/does-anyone-have-a-mac-terminal-script-to-remove-hidden-files/814104#814104