Para vaciar una carpeta de salida reutilizable sin eliminarla, crea un atajo de Mac que borre solo su contenido. Esta guía usa una carpeta fija, archivos de texto desechables y un script de shell que comprueba la carpeta antes de vaciarla.
La tarea consiste en restablecer una carpeta entre lotes de archivos generados. El ejemplo incluye archivos normales, un nombre de archivo con espacios, un archivo oculto y una carpeta anidada. El script elimina directamente estos elementos; no los traslada a la Papelera. El manual publicado por Apple para rm documenta la eliminación recursiva y la notificación de errores. Manual de rm de Apple
Decide qué debe quedar después de vaciar la carpeta
En este flujo de trabajo, el resultado esperado es que exista una carpeta vacía en la misma ruta. Las subcarpetas que haya dentro también son contenido de salida, así que se eliminan junto con su contenido. Si tu directorio de salida contiene plantillas o una estructura de subcarpetas permanente, este script concreto necesita otra regla de selección antes de que lo uses.
El destino del ejemplo es Shortcut Output Demo, directamente dentro de tu carpeta de inicio. Mantener fijo el destino facilita inspeccionar el atajo: su comportamiento no depende de qué ventana del Finder esté abierta ni de qué archivo esté seleccionado.
| Requisito | Comportamiento de esta guía |
|---|---|
| Conservar la carpeta de salida | Solo se pasan rutas secundarias a rm |
| Incluir el contenido oculto | La opción dotglob de Bash incluye nombres que empiezan por un punto |
| Gestionar una carpeta que ya está vacía | Se acepta una lista vacía de elementos secundarios |
| Gestionar una carpeta que no existe | Detenerse con un error; no volver a crearla |
| Eliminar el contenido de salida anidado | Eliminar recursivamente cada carpeta secundaria |
Conservar la posibilidad de usar Put Back del Finder |
Usar en su lugar la alternativa del Finder que se muestra a continuación |
El Finder ofrece una alternativa útil si quieres que los elementos permanezcan en la Papelera. Abre la carpeta de salida, selecciona los elementos desechables que contiene y pulsa Command-Delete. No selecciones la carpeta contenedora. Apple indica que los elementos trasladados a la Papelera permanecen allí hasta que se vacía y que se pueden restaurar con File > Put Back. Eliminar archivos y carpetas en el Mac
Crea una carpeta desechable para la primera ejecución
Abre Terminal y pega el bloque completo de configuración que aparece a continuación. Solo crea archivos de texto sintéticos. La instrucción inicial mkdir debe ejecutarse correctamente antes de escribir ningún archivo, así que si ya existe un archivo o una carpeta llamada Shortcut Output Demo, la configuración se detiene en vez de reutilizar su contenido.
/bin/bash <<'BASH'
set -eu
target="$HOME/Shortcut Output Demo"
if ! /bin/mkdir "$target"; then
printf 'Setup stopped: choose an unused demo folder name.\n' >&2
exit 1
fi
/bin/mkdir "$target/Batch"
printf 'Synthetic output A\n' > "$target/alpha.txt"
printf 'Synthetic output B\n' > "$target/sample output.txt"
printf 'Synthetic marker\n' > "$target/.demo-marker"
printf 'Synthetic nested output\n' > "$target/Batch/nested.txt"
printf 'Created disposable examples in: %s\n' "$target"
BASH
Abre tu carpeta de inicio en el Finder y busca Shortcut Output Demo. Contiene tres elementos secundarios visibles: alpha.txt, sample output.txt y Batch. El cuarto elemento, .demo-marker, está oculto intencionadamente. Dentro de Batch se encuentra nested.txt. Son entradas de prueba ilustrativas, no archivos de usuario existentes.
Si la configuración se detiene porque el nombre ya existe, deja ese elemento como está. Elige otro nombre de prueba que no esté en uso y cambia la asignación del destino tanto en la configuración como en el script de vaciado para que coincidan. No elimines la comprobación de creación inicial para evitar el conflicto.
Crea el atajo y conserva los tipos de entrada y salida
En Atajos, haz clic en el botón para añadir un atajo y ponle el nombre Clear Demo Output. Busca la acción Run Shell Script en la lista y añádela. Apple documenta cómo crear atajos añadiendo acciones y cómo buscar acciones por nombre en la lista. Crear un atajo personalizado en el Mac, Desplazarse por la lista de acciones en Atajos en el Mac
Establece Shell de la acción en /bin/bash y, a continuación, sustituye los comandos de ejemplo por el script completo de vaciado que aparece a continuación. Este script usa matrices de Bash y shopt, así que conserva esa selección de shell. Lee el destino de la asignación que aparece en el script; no consume la entrada del atajo, la entrada estándar ni argumentos de línea de comandos.
Si los scripts están desactivados, selecciona Shortcuts > Settings, abre Advanced y activa Allow Running Scripts. Apple documenta este ajuste para ejecutar scripts desde atajos. Ajuste de Apple para ejecutar scripts
set -u
target="$HOME/Shortcut Output Demo"
if [[ ! -d "$target" || -L "$target" ]]; then
printf 'Expected an existing ordinary folder: %s\n' "$target" >&2
exit 1
fi
if [[ ! -r "$target" || ! -x "$target" ]]; then
printf 'Cannot list the output folder.\n' >&2
exit 1
fi
unset GLOBIGNORE
set +f
shopt -u failglob
shopt -s dotglob nullglob
items=( "$target"/* )
for item in "${items[@]}"; do
if ! /bin/rm -R -- "$item"; then
printf 'Clearing stopped; some items may remain.\n' >&2
exit 1
fi
done
remaining=( "$target"/* )
if (( ${#remaining[@]} != 0 )); then
printf 'The folder still contains items.\n' >&2
exit 1
fi
printf 'Folder is empty: %s\n' "$target"
El resultado correcto de la acción es texto: una línea que empieza por Folder is empty:. No es un objeto de carpeta, una lista de archivos eliminados ni una referencia al directorio reutilizable. Si más adelante amplías el atajo, proporciona explícitamente la carpeta de destino a las acciones que la requieran. El panel de información de las acciones de Apple indica qué entrada aceptan y qué salida generan; haz Control-clic en el icono de una acción y selecciona Show Info para consultarlo. Ver información sobre la entrada y la salida de una acción
Para mostrar un mensaje de finalización, añade Show Alert después del script e inserta la variable de salida del script en el mensaje. Apple documenta cómo pasar a Show Alert la salida de una acción anterior para inspeccionarla. Un mensaje fijo que diga que la carpeta está vacía ofrece información menos útil que mostrar el resultado real del script. Usar la acción Show Alert en un atajo del Mac
Entiende por qué la carpeta se conserva
La asignación items=( "$target"/* ) reúne las rutas de los elementos secundarios. El bucle pasa cada elemento por separado a rm; nunca pasa \"$target\". Por eso, la eliminación recursiva se aplica a las subcarpetas de salida y deja intacta la carpeta principal reutilizable.
Dos opciones de Bash resuelven problemas habituales al restablecer la carpeta. dotglob incluye los nombres de archivo que empiezan por un punto, y nullglob hace que un patrón sin coincidencias no se expanda a nada. La expansión de la matriz entre comillas conserva los nombres de archivo con espacios como argumentos individuales. Estos comportamientos están documentados en el manual de Bash distribuido por Apple. Manual de Bash: expansión de nombres de ruta y matrices
El comando de eliminación usa -R para las carpetas anidadas y -- para finalizar el análisis de opciones. Comprueba el resultado de cada comando y se detiene si se produce un error. El manual de rm de Apple especifica que se devuelve un estado de salida distinto de cero cuando ocurre un error. La eliminación no es una transacción: si falla un elemento secundario posterior, no se restauran los que ya se hayan eliminado. Manual de rm de Apple
El script también rechaza los destinos que son enlaces simbólicos. Limita este ejemplo a una carpeta de salida local normal, sin volúmenes montados dentro. Detén cualquier proceso que esté generando contenido antes de vaciarla: los archivos creados durante la ejecución o después pueden invalidar la expectativa de que la carpeta quede vacía.
Verifica la primera ejecución y las siguientes
Ejecuta el atajo con el botón de ejecución del editor. Antes de cambiar la ruta del destino, comprueba el resultado siguiendo esta secuencia. Apple documenta cómo probar un atajo personalizado desde el editor. Probar un atajo personalizado
- Confirma en el Finder que
Shortcut Output Demosigue existiendo. - Confirma que han desaparecido los archivos de ejemplo visibles y la carpeta
Batch. - Confirma que el script devolvió el mensaje de carpeta vacía; la comprobación final también incluye los elementos secundarios ocultos.
- Vuelve a ejecutar el atajo. Si la carpeta ya está vacía, debería aparecer el mismo mensaje.
- Cambia temporalmente el nombre de la carpeta de prueba vacía y vuelve a ejecutar el atajo. El script debería detenerse y mostrar el error de carpeta existente. Después, restaura el nombre original.
El script de vaciado pasó una comprobación de sintaxis de Bash con bash -n. Para este artículo no se ha ejecutado en Atajos de macOS, así que la secuencia de primera ejecución con elementos desechables sigue formando parte de la configuración.
Si falla la eliminación, inspecciona el elemento indicado y el contenido restante de la carpeta antes de volver a intentarlo. Un destino inexistente, un directorio ilegible y una eliminación fallida son situaciones distintas; el script no las presenta como si hubiera finalizado correctamente.
Reutiliza la carpeta sin dar por sentado cómo se gestionan los conflictos de nombres
Cuando la prueba desechable dé el resultado esperado, cambia la asignación del destino para que apunte a la carpeta de salida elegida. Revisa primero su contenido y mantén la misma condición: todo lo que haya dentro es contenido de salida reemplazable, incluidos los elementos ocultos y las subcarpetas.
Vaciar una carpeta elimina los nombres que existen en ese momento. No determina qué hace una acción posterior de exportación o guardado si dos archivos nuevos tienen el mismo nombre. Consulta las opciones y la descripción de esa acción en concreto en vez de dar por hecho que este restablecimiento permite reemplazar archivos, combinarlos o cambiarles el nombre automáticamente. Apple ofrece descripciones de las acciones mediante Show Info. Consultar el comportamiento de una acción
También puedes ejecutar desde Terminal el atajo guardado con el comando completo que aparece a continuación. Apple documenta cómo poner entre comillas los nombres de atajos que contienen espacios e indica que, si el comando shortcuts se ejecuta correctamente, devuelve 0; si ocurre un error, devuelve 1. Ejecutar atajos desde la línea de comandos
shortcuts run "Clear Demo Output"
Sigue una secuencia deliberada para vaciar la carpeta y generar contenido: termina el lote anterior, vacía la carpeta elegida, comprueba el resultado y, después, crea el siguiente lote. Así, la carpeta reutilizable tiene una función clara y las ejecuciones repetidas son predecibles.
Fuentes
- Crear un atajo personalizado en el Mac — Soporte técnico de Apple.
- Desplazarse por la lista de acciones en Atajos en el Mac — Soporte técnico de Apple.
- Ajustes avanzados de privacidad y seguridad en Atajos en el Mac — Soporte técnico de Apple.
- Usar la acción Show Alert en un atajo del Mac — Soporte técnico de Apple.
- Eliminar archivos y carpetas en el Mac — Soporte técnico de Apple.
- Ejecutar atajos desde la línea de comandos — Soporte técnico de Apple.
- rm.1 — Distribuciones de código abierto de Apple.
- bash.1 — Distribuciones de código abierto de Apple.