폴더에 드롭 된 항목을 저장하는 폴더 작업 스크립트는 어떻게 만듭니 까?


5

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

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 및 옵션에 대해 읽었습니다.

답변:


4

시험:

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

스크립트 adayzdone을 가져 주셔서 감사합니다. 그래도 작동하지 않는 것 같습니다. 나는 그것을 폴더에 붙이고 몇 개의 .PDF 파일을 거기에 떨어 뜨렸다. 아무 것도 내 바탕 화면에 나타나지 않습니다. 나는 당신이 거의 모든 기계에서 이식 가능하고 누군가에 의해 사용되도록 만든 것처럼 스크립트를 전혀 편집하지 않았다. 어떤 생각을하고 또 시간 내 주셔서 감사합니다.
BsdHelper

1
목록 끝에있는 여분의 공간으로 인해 문제가 발생했습니다. 지금 시도해보십시오.
adayzdone

1
스크립트가 작동 중입니다. 정말 고맙습니다. 앞으로 AppleScript에 대해 더 많이 배우고 다양한 압축 수준에서 놀기 위해 참고 자료로 사용할 것입니다. 다시 한번 감사드립니다 !!!
BsdHelper

7

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

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 응용 프로그램과 관련해서는 정말입니다.


신뢰할 수없는 폴더 작업에 대해서는 사실이 아니 었으면 좋지만, 당신은 옳습니다. OP가 자신의 폴더 작업을 만드는 스릴을 원한다면 시도해보십시오. 안정적으로 작동해야하는 경우 내 경험에 따라 폴더 작업을 수행하지 않을 것입니다.
Daniel

제 3 자 유틸리티를 포함하고 싶지는 않지만 제안에 대해 TJ Luoma에게 ​​감사드립니다.
BsdHelper

헤이즐 (Hazel) 사용에 관한 내용. 가정과 직장 모두에서 행복한 사용자를 만나보십시오.
Gavin Anderson

0

또 다른 옵션이 있습니다.

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 .


TJ에서 답장을 보내 주셔서 감사합니다. 나는 당신과 adayzdone의 대답을 모두 복사했고, 내가 가장 좋아하는 것을보기 위해 그것들을 모두 시도 할 것입니다. 나는 사람들이 애플 스크립트가 "신뢰할 수 없다"라고 말한 것을 알고있다. 그러나 나는 당신의 방법이 시스템 레벨에서 더 강력 해 보이더라도 배우는 것이 재미있는 언어라고 생각한다. 다시 한번 감사드립니다.
BsdHelper
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.