Quiero crear un servicio utilizando Automator para ejecutar un script de shell en todos los archivos de una carpeta, por ejemplo, eliminar todos los archivos de registro. Lo que he hecho es
- Creó un nuevo servicio en automator.
- Se agregó una acción "Ejecutar script de shell". He cambiado esto a 'pwd' por ahora.
- El "Servicio recibe las carpetas seleccionadas" seleccionado.
- Intenté ejecutarlo, pero recibe un mensaje. "Para probar este servicio dentro de Automator, agregue la acción" Obtener elementos del buscador especificados "al comienzo de su flujo de trabajo. Quite o deshabilite la acción antes de ejecutar el flujo de trabajo fuera de Automator.
- está bien. Así que agrego "Obtener elementos del buscador especificados". Se agregó un directorio de 'prueba' a la lista de elementos.
Ahora, cuando ejecuto el script, la ventana de resultados imprime mi directorio de inicio.
En otros lugares, he leído que tal vez necesito agregar
cd "$1"
al principio de mi script. Hice eso pero todavía imprime mi directorio personal. ¿Cómo consigo esta cosa para imprimir el directorio que he seleccionado en "Obtener elementos del buscador especificados"?
Editado para agregar
Aquí hay una captura de pantalla de un script que funciona.
Aquíhayunacapturadepantalladeunscriptquenofunciona.
Laformahabitualenquetrataríaelerror"no se encontró coincidencia: * .log" sería redirigir la salida de error a nula. Sustituyendo la línea "rm" por
find . -name "*.log" -print0 | xargs -0 rm -rf
Funciona sin embargo. Esto parece más difícil de lo que debería ser.