5 votos

¿Cómo puedo crear una Carpeta de secuencia de Comandos de Acción de alquitrán de los elementos que coloques en la carpeta?

Me gustaría colocar o copiar los archivos/carpetas y se han comprimido y luego se copia a mi escritorio. Esto es lo que sabemos hasta ahora... y no es mucho por lo que cualquier ayuda se agradece.

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

Esto va a crear mi lista de archivos cayeron en la carpeta. Ahora mi compresión de comando...

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

De alguna manera sé que tengo que alimentar a la lista de "theAddedItems" creado en la primera parte de la secuencia de comandos para el comando tar. Pero tengo la menor idea de cómo se podría hacer esto. Leyendo ahora sobre el alquitrán y sus opciones como estoy seguro de que hay una "inclusión" de la función para la que apunta a una lista de elementos a añadir al archivo.

7voto

moodforaday Puntos 2633

En lugar de gastar su tiempo con Acciones de Carpeta (que yo, y muchos otros, han encontrado a ser poco fiables), podría sugerir que dar Hazel intentarlo?

http://www.noodlesoft.com

Renuncia de responsabilidad: yo voy a empezar diciendo que no es gratis (US$28), pero si te gusta la automatización, este es el lugar para comenzar. Hay una prueba gratuita de 14 días. Estoy completamente ajenos a la empresa, excepto como un muy feliz usuario.

Hazel le permite crear carpeta 'acciones' muy fácilmente con un buen GUI, que es similar a la creación de Correo electrónico.aplicación de las reglas. Usted puede tomar acción en función de nombre de archivo, extensión, tipo (es decir, "imágenes, documentos, películas") y muchos otros.

Aquí la norma es la que yo uso para cualquier archivo/carpeta añadido a ~/Acción/ZipIt/

Screenshot of Hazel rule

Hazel busca cualquier archivo que no es ya un archivo (yo podría haber dicho que la ley sobre los archivos en todos, pero quiero evitar la compresión de los archivos que ya están comprimidos). Yo podría añadir otros criterios (que podría ser opciones o requisitos, como el operador booleano "and" u "or").

Sea lo que sea será archivado, luego se trasladó a la de Escritorio, entonces será mostrado a mí en el Finder.

Ver el pequeño botón de "Opciones" junto a la "Mover al Escritorio'? Haga clic en eso y usted puede decirle a Hazel qué hacer si se detecta que el archivo que se va a mover es un duplicado.

También hay una opción para que el Buscador de poner al frente o no.

Hay un montón de otras acciones Hazel puede hacer además del archivo:

screenshot of hazel actions

(Nota: en iPhoto y Aperture son de color gris porque no los tengo instalados.)

Las opciones para ejecutar AppleScript/Automator/secuencias de comandos de shell significa que usted tiene el poder para hacer casi cualquier cosa que puedas imaginar.

Yo podría seguir y seguir, pero aquí tenemos un ejemplo más: he Hazel reloj ~/Descargas/ para .los archivos zip. Cuando los encuentra, se baja la cremallera de los a ~/Acción/Descomprimido/ (usted puede hacer esto ya sea diciéndole Archivo de la Utilidad de usar esa carpeta, o el uso de La Aplicación). Hazel a continuación, busca en ~/Acción/Descomprimido/ para los nuevos archivos que terminan con .de la aplicación y, si los encuentra, los mueve a /Aplicaciones/ y los abre. Voilà! Instantánea de la instalación de aplicaciones.

En el mundo de 99¢ aplicaciones, $28 probablemente suena como un gasto enorme, pero a mí me Hazel es una de las herramientas que tiene algo que hizo Apple, pero no muy bien (Acciones de Carpeta), y lo reemplaza con algo que va a hacer que te preguntes por qué Apple no hacerlo. Obtener una prueba de 2 semanas, y un desarrollador que ha trabajado en esta aplicación durante años, y que es muy bueno para responder a las preguntas de soporte.

Lo siento sonar como un fanboi, pero cuando se trata de Hazel y algunas otras aplicaciones de Mac, yo realmente soy.

4voto

adayzdone Puntos 1258

Probar:

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

0voto

moodforaday Puntos 2633

Hay otra opción.

En lugar de una Carpeta Acción (y los problemas inherentes con ellos), puede utilizar QueueDirectories en launchd a llamar a un script de shell.

Por ejemplo, este va a llamar el script /usr/local/bin/mktgz.sh alguna vez que un archivo se pone en /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>

Tengo una versión evolucionada de esta disponible en https://github.com/tjluoma/mktgz.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X