Como no estaban demasiado claras sobre el tipo de Automator de flujo de trabajo que has creado, me voy a centrar principalmente en el código que estás usando en el Ejecutar el Shell Script de acción.
El siguiente ejemplo de Automator flujo de trabajo fue creado por Archivo > Nuevo > Flujo de trabajo de Automator con un Seleccionado Buscador de Elementos de acción y Ejecutar el Shell Script de acción agregó, con la configuración como se muestra en la imagen de más abajo.
Las pruebas se realizaron con una selección que contiene tanto los archivos y carpetas que se incluyen tanto los objetivos reales de la Automator flujo de trabajo's Ejecutar el Shell Script de acción, y a los demás como si accidentalmente selecciona si se quiere. Con los siguientes archivos y carpetas seleccionados en el Buscador:
.
├── Archive.zip
├── Folder_Name_1
├── Folder_Name_2
├── Folder_Name_3
├── Foobar
└── Foobar.txt
El siguiente ampliado de la vista del árbol, de la selección de archivos y carpetas que se muestra arriba, obviamente contiene archivos que no son los objetivos reales del flujo de trabajo así como una carpeta que no contiene el contenido esperado. Esto fue hecho para probar que el ejemplo bash
código funciona como se esperaba.
.
├── Archive.zip
├── Folder_Name_1
│ └── Converted_Files
│ ├── file1.aiff
│ └── file2.aiff
├── Folder_Name_2
│ └── Converted_Files
│ ├── file1.aiff
│ └── file2.aiff
├── Folder_Name_3
│ └── Converted_Files
│ ├── file1.aiff
│ └── file2.aiff
├── Foobar
│ └── Barfoo
│ └── More Foobar.txt
└── Foobar.txt
8 directories, 9 files
Después de ejecutar el flujo de trabajo de Automator en el seleccionado archivos y carpetas en el Finder, a continuación se muestra la nueva ampliado de la vista del árbol de la selección original ampliado vista de árbol:
.
├── Archive.zip
├── Folder_Name_1
│ ├── file1.aiff
│ └── file2.aiff
├── Folder_Name_2
│ ├── file1.aiff
│ └── file2.aiff
├── Folder_Name_3
│ ├── file1.aiff
│ └── file2.aiff
├── Foobar
│ └── Barfoo
│ └── More Foobar.txt
└── Foobar.txt
5 directories, 9 files
Como se puede ver en la imagen de abajo, y en conjunción con la información presentada anteriormente, el Automator flujo de trabajo completado sin errores y solo se procesa la adecuada carpetas de destino aunque adicionales que no son blancos fueron enviados al Ejecutar el Shell Script de acción como se muestra arriba.
También tenga en cuenta que las pruebas adicionales que se había hecho con las carpetas de destino /Folder_Name_N/Converted_Files/
no contengan .aiff
contenido para asegurarse de que otros luego la trasladó .aiff
de contenido no tiene que ser eliminado explícitamente, por ejemplo rm .DS_Store
no fue necesario, ya que el -r
opción de la rm
comando le intento quitar el archivo de la jerarquía de sus root en cada archivo como argumento. Usted también podría considerar el uso de la -f
opción también. (Ya he añadido a mi ejemplo bash
código, por lo tanto, eliminar si usted no desea utilizar esa opción.)
Ejemplo bash
código para Ejecutar el Shell Script de acción:
for d in "$@"; do
[ -d "$d" ] || continue
if [ -d "$d/Converted_Files" ]; then
cd "$d/Converted_Files" || exit
for f in *.aiff; do
mv "$f" ..
done
fi
cd ..
rm -rf "Converted_Files"
done
Tenga en cuenta que el ejemplo bash
código es sólo eso, y no puede contener todos los errores de manejo como puede ser apropiado/necesitaba/quería. La responsabilidad recae siempre sobre el usuario para implementar cualquier adecuados y necesarios/quería manejo de errores con cualquier código que uno elige para su uso.
La prueba se realiza bajo macOS Alta Sierra 10.13.6.