Automator의 Sierra 10.12.3에서 작동하도록했습니다.
먼저이 버전의 스크립트를 만들었습니다. freefly42와 같은 방식으로 작동합니다. 동일한 방식으로 쓰는 것과는 다른 방식입니다.
비원시 bash 스피커를 번역하려면 다음과 같이하십시오.
명령 줄 인수와 함께 실행하면 인수가 디렉토리인지 여부와 해당 디렉토리에 ".disable_osx_metadata"라는 파일이 있는지 확인합니다.
특수 파일이 없으면 아무 일도 일어나지 않습니다. 해당 드라이브는 무시됩니다.
특수 파일이 있으면 스크립트는 모든 osx 메타 데이터를 삭제하고 다른 것을 막는 몇 가지 작은 새 항목을 만듭니다. 예를 들어, .Trashes라는 파일을 작성하면 OS가 .Trashes라는 디렉토리를 작성한 다음 파일을 작성할 수 없습니다.
인수없이 실행하면 / 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에 / Volumes 디렉토리를 분명하지 않은 방식으로 추가 할 수 있음을 알았습니다.
Finder, File, "Go To Folder ..."로 이동하여 "/ Volumes"를 수동으로 쓰고 Enter를 누르십시오.
이제 HD 및 USB 드라이브가있는 창이 표시되지만 "/ Volumes"폴더를 클릭하지 않아도됩니다. 그러나 제목 표시 줄에 "/ Volumes"라고 표시되고 맨 아래에도 나타납니다.
제목 표시 줄 또는 아래쪽에서 "/ 볼륨"옆에있는 폴더 아이콘을 Automator로 끌어서 "폴더 작업이 다음에 추가 된 파일 및 폴더를받습니다 : [______]"
파인더를 닫습니다.
Automator로 돌아 가기 : 왼쪽에서 아래로 스크롤하여 "Get Folder Contents"를 오른쪽으로 끌어서 놓습니다.
그런 다음 왼쪽에서 다시 아래로 스크롤하여 "쉘 스크립트 실행"을 오른쪽으로 끌어서 "폴더 컨텐츠 가져 오기"아래에 놓으십시오.
"Pass input :"을 "arguments"로 변경하십시오. 셸 : [/ bin / bash] 입력 : [인수로] 전달
그런 다음 스크립트를 / 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에서 수동으로 탐색하여 삭제해야한다고 생각합니다.
마지막으로, 보호하려는 각 새 USB 드라이브에 대해 루트 폴더에 ".disable_osx_metadata"라는 파일을 만들어야합니다.
터미널에서 할 수 있습니다 : $ touch / Volumes / NO \ NAME / .disable_osx_metadata
또는 작은 텍스트 파일을 보이는 이름으로 표시하고 (앞의 점 없음) 새 USB 드라이브의 루트에 복사하고 복사 후 이름을 .disable_osx_metadata로 바꾸십시오.
이제부터 드라이브를 연결할 때마다 해당 드라이브가 정리됩니다.
내가 원하는만큼 깨끗하지 않습니다. OS가 더 이상 오염되지 않도록하려면 드라이브를 약간 오염시켜야합니다. OS를 단순히 내버려두고 요청하지 않은 파일을 추가하지 않는 방법은 없습니다.
TODO : 활성화 / 비활성화 기능을 추가하여 도트 파일을 생성 / 제거합니다.
TODO : 모든 디렉토리에서 .DS_Store 파일을 막을 수는 없습니다.
TODO : 스크립트와 foo.workflow 파일을 패키징하여 사용자가 이러한 수동 지시의 대부분을 건너 뛸 수 있습니까? Automator에 일종의 패키지 파일을 만드는 "내보내기"옵션이 있습니다.
TODO :이 글 전체를 쓸모 없게 만들었습니다. 이 애플 스크립트 + 자동화 워크 플로우가 더 좋을 수 있습니다 :
https://superuser.com/questions/319553/does-anyone-have-a-mac-terminal-script-to-remove-hidden-files/814104#814104