폴더에 드롭 된 항목을 저장하는 폴더 작업 스크립트는 어떻게 만듭니 까? 내가 지금까지 알고있는 것입니다

파일 / 폴더를 삭제 / 복사하고 압축하여 내 바탕 화면에 복사하고 싶습니다. 이것은 내가 지금까지 알고있는 것입니다 … 그리고 그렇게 많은 도움이되지 않을 것입니다.

on adding folder items to theFolder after receiving theAddedItems
repeat with x in theAddedItems

이렇게하면 내 폴더 목록에 파일 목록이 생성됩니다. 이제 내 압축 명령 …

tar cvf - *variableForFileListHere* | gzip -9 - > files.tar.gz

어떻게 든 나는 스크립트의 첫 번째 부분에서 작성된 “theAddedItems”목록을 tar 명령에 공급해야한다는 것을 알고 있습니다. 그러나 나는 이것이 어떻게 행해지는지에 대해 단서가 없다. 아카이브에 추가 할 항목 목록을 가리키는 “include”기능이 있다고 확신하면서 tar 및 옵션에 대해 읽었습니다.



답변

시험:

on adding folder items to theFolder after receiving theAddedItems
    set myList to {}
    repeat with x in theAddedItems
        set end of myList to quoted form of x's POSIX path & space
    end repeat
    set myList to text 1 thru -2 of (myList as text)
    do shell script "tar cvf " & myList & " | gzip -9 - > ~/Desktop/files.tar.gz"
end adding folder items to


답변

폴더 작업 (나는 많은 사람들이 신뢰할 수 없다는 것을 알았습니다)에 시간을 소비하기보다, 헤이젤에게 시도해 볼 것을 제안 할 수 있습니까?

http://www.noodlesoft.com

면책 조항 : 나는 그것이 무료가 아니라는 것을 알려줌으로써 시작할 것입니다. (그것은 $ 28입니다.) 그러나 자동화가 마음에 들면 시작하는 곳입니다. 14 일 무료 평가판이 있습니다. 나는 극도로 행복한 사용자를 제외하고는 회사와 전혀 관련이 없다.

Hazel을 사용하면 Mail.app 규칙을 만드는 것과 비슷한 멋진 GUI를 사용하여 ‘폴더 작업’을 매우 쉽게 만들 수 있습니다. 파일 이름, 확장자, 종류 (예 : ‘이미지, 문서, 영화’) 및 기타 여러 가지 방법에 따라 조치를 취할 수 있습니다.

~ / Action / ZipIt /에 추가 된 파일 / 폴더에 사용하는 규칙은 다음과 같습니다.

Screenshot of Hazel rule

Hazel은 이미 아카이브가 아닌 파일을 찾습니다 (어떤 파일에서도 작동하도록 말할 수는 있었지만 이미 압축 된 파일은 압축하지 않으려합니다). 다른 기준 (부울 “AND”또는 “OR”문과 같은 옵션 또는 요구 사항 일 수 있음)을 추가 할 수 있습니다.

그것이 무엇이든간에 보관되어 데스크탑으로 옮겨지면 파인더에 나에게 표시됩니다.

‘데스크톱으로 이동’옆에있는 작은 ‘옵션’버튼을 참조하십시오. 이것을 클릭하면 이동하려는 파일이 복제본임을 감지하면 Hazel에게 무엇을 해야할지 알릴 수 있습니다.

Finder를 앞쪽으로 가져갈 지 여부도 선택할 수 있습니다.

Hazel이 아카이브 외에 할 수있는 다른 많은 작업이 있습니다.

screenshot of hazel actions

(참고 : iPhoto와 Aperture는 설치되어 있지 않기 때문에 회색으로 표시됩니다.)

AppleScript / Automator / shell 스크립트를 실행하는 옵션은 상상할 수있는 모든 것을 할 수있는 힘을 가지고 있음을 의미합니다.

나는 계속해서 갈 수 있지만, 여기에 또 하나의 예가있다 : 나는 Hazel watch ~ / Downloads / .zip 파일을 가지고있다. 발견되면 ~ / Action / Unzipped /에 압축을 풉니 다 (Archive Utility에 해당 폴더를 사용하도록 지시하거나 The Unarchiver를 사용하여이 작업을 수행 할 수 있습니다). Hazel은 ~ / Action / Unzipped /에서 .app로 끝나는 새 파일을 찾아서 / Applications /로 이동하고 엽니 다. Voilà! 앱을 즉시 설치합니다.

99 달러짜리 앱의 세계에서 거대한 비용이 들겠지만, 나에게 헤이젤은 애플이 한 일이지만 그다지 좋지 않은 일 (폴더 액션)을 취하는 도구 중 하나이며, 왜 애플은 그것을하지 않았다. 2 주간의 평가판과 수년간이 앱을 개발 한 헌신적 인 개발자가 있으며 지원 질문에 답하는 데 매우 능숙합니다.

fanboi처럼 들리는데 유감스럽게 생각하지만, Hazel 및 다른 Mac 응용 프로그램과 관련해서는 정말입니다.


답변

또 다른 옵션이 있습니다.

Folder Action (그리고 그것들에 고유 한 문제) 대신에, QueueDirectories …에서 launchd 쉘 스크립트를 호출합니다.

예를 들어,이 스크립트를 호출합니다 /usr/local/bin/mktgz.sh 파일을 넣을 때마다 /Users/foo/Action/Gzip

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.tjluoma.mktgz</string>
    <key>Program</key>
    <string>/usr/local/bin/mktgz.sh</string>
    <key>QueueDirectories</key>
    <array>
        <string>/Users/foo/Action/Gzip</string>
    </array>
</dict>
</plist>

나는 이것의 더 발전된 버전을에 가지고있다. https://github.com/tjluoma/mktgz .


답변