Per svuotare una cartella di output riutilizzabile mantenendo la cartella stessa, crea un comando rapido per Mac che rimuova solo i suoi elementi. Questa guida usa una cartella fissa, file di testo temporanei e uno script shell che controlla la cartella prima di svuotarla.
L’obiettivo è reimpostare una cartella tra un gruppo di file generati e l’altro. L’esempio include file normali, un nome file con spazi, un file nascosto e una cartella annidata. Lo script rimuove direttamente questi contenuti; non li sposta nel Cestino. Il manuale pubblicato da Apple per rm documenta la rimozione ricorsiva e la segnalazione degli errori. Manuale di rm di Apple
Decidi cosa deve rimanere dopo lo svuotamento
In questo flusso di lavoro, il risultato atteso è una cartella esistente e vuota nello stesso percorso. Anche le sottocartelle al suo interno sono output, quindi vengono rimosse insieme ai loro contenuti. Se la directory di output contiene modelli o una struttura permanente di sottocartelle, prima di usare questo script specifico serve una regola di selezione diversa.
La cartella di destinazione dell’esempio è Shortcut Output Demo, direttamente nella cartella Inizio. Mantenere fissa la destinazione rende facile controllare il comando rapido: il suo comportamento non dipende dalla finestra del Finder aperta o dal file selezionato.
| Requisito | Comportamento in questa guida |
|---|---|
| Conservare la cartella di output | Solo i percorsi degli elementi contenuti vengono passati a rm |
| Includere gli output nascosti | L’opzione di Bash dotglob include i nomi che iniziano con un punto |
| Gestire una cartella già vuota | Un elenco vuoto di elementi è accettato |
| Gestire una cartella mancante | Interrompere con un errore; non ricrearla |
| Rimuovere gli output annidati | Rimuovere ricorsivamente ogni sottocartella |
| Conservare la possibilità di usare «Rimetti a posto» nel Finder | Usare invece l’alternativa del Finder descritta sotto |
Il Finder offre una valida alternativa quando vuoi che gli elementi restino nel Cestino. Apri la cartella di output, seleziona gli elementi temporanei al suo interno e premi Command-Delete. Lascia deselezionata la cartella che li contiene. Apple spiega che gli elementi spostati nel Cestino vi restano finché non viene svuotato e possono essere ripristinati con File > Put Back. Eliminare file e cartelle sul Mac
Crea una cartella temporanea per la prima esecuzione
Apri Terminale e incolla l’intero blocco di configurazione qui sotto. Crea solo file di testo sintetici. Il comando iniziale mkdir deve riuscire prima che venga scritto qualsiasi file, quindi se esiste già un file o una cartella denominata Shortcut Output Demo, la configurazione si interrompe invece di riutilizzarne i contenuti.
/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
Apri la cartella Inizio nel Finder e individua Shortcut Output Demo. Contiene tre elementi visibili: alpha.txt, sample output.txt e Batch. Il quarto elemento, .demo-marker, è deliberatamente nascosto. Dentro Batch si trova nested.txt. Sono input di prova esemplificativi, non file utente già esistenti.
Se la configurazione si interrompe perché il nome esiste già, lascia invariato l’elemento esistente. Scegli un altro nome di prova non utilizzato e modifica l’assegnazione della destinazione sia nella configurazione sia nello script di svuotamento. Non rimuovere il controllo di creazione iniziale solo per superare la collisione.
Crea il comando rapido e mantieni i tipi di input e output
In Comandi Rapidi, fai clic sul pulsante di aggiunta per creare un comando rapido e chiamalo Clear Demo Output. Cerca Run Shell Script nell’elenco delle azioni e aggiungi quell’azione. Apple documenta la creazione di comandi rapidi aggiungendo azioni e la ricerca di azioni per nome nell’elenco. Creare un comando rapido personalizzato sul Mac, Navigare nell’elenco delle azioni in Comandi Rapidi sul Mac
Imposta Shell dell’azione su /bin/bash, quindi sostituisci i comandi di esempio con lo script di svuotamento completo qui sotto. Questo script usa gli array di Bash e shopt, quindi mantieni questa selezione della shell. Legge la destinazione dall’assegnazione nello script; non usa l’input del comando rapido, lo standard input o gli argomenti della riga di comando.
Se gli script sono disabilitati, scegli Shortcuts > Settings, apri Advanced e abilita Allow Running Scripts. Apple documenta questa impostazione per eseguire script dai comandi rapidi. Impostazione di Apple per l’esecuzione degli script
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"
L’output dell’azione in caso di successo è testo: una riga che inizia con Folder is empty:. Non è un oggetto Cartella, un elenco dei file eliminati o un riferimento alla directory riutilizzabile. Se in seguito estendi il comando rapido, fornisci esplicitamente la cartella di destinazione a ogni azione che si aspetta una cartella. Il pannello informativo di un’azione di Apple indica l’input accettato e l’output prodotto; fai clic tenendo premuto Control sull’icona dell’azione e scegli Show Info per consultarli. Visualizzare le informazioni di input e output di un’azione
Per mostrare un messaggio di completamento, aggiungi Show Alert dopo lo script e inserisci nel messaggio la variabile di output dello script. Apple documenta come passare l’output di un’azione precedente a Show Alert per controllarlo. Un messaggio fisso che dichiara che la cartella è vuota sarebbe meno utile della visualizzazione del risultato effettivo dello script. Usare l’azione Show Alert in un comando rapido sul Mac
Scopri perché la cartella rimane
L’assegnazione items=( "$target"/* ) raccoglie i percorsi degli elementi contenuti. Il ciclo passa ogni elemento separatamente a rm; non passa mai \"$target\". La rimozione ricorsiva si applica quindi alle sottocartelle di output, lasciando intatta la cartella principale riutilizzabile.
Due opzioni di Bash gestiscono i problemi comuni durante la reimpostazione. dotglob include i nomi dei file che iniziano con un punto, mentre nullglob fa sì che uno schema senza corrispondenze non produca alcun risultato. L’espansione di array tra virgolette mantiene i nomi file contenenti spazi come argomenti singoli. Questi comportamenti sono documentati nel manuale di Bash distribuito da Apple. Manuale di Bash: espansione dei percorsi e array
Il comando di rimozione usa -R per le cartelle annidate e -- per terminare l’analisi delle opzioni. Controlla il risultato di ogni comando e si interrompe in caso di errore. Il manuale di rm di Apple specifica uno stato di uscita diverso da zero quando si verifica un errore. La rimozione non è una transazione: un errore su un elemento successivo non ripristina quelli già rimossi. Manuale di rm di Apple
Lo script rifiuta anche una destinazione che sia un collegamento simbolico. Limita questo esempio a una normale cartella di output locale, senza volumi montati al suo interno. Interrompi qualsiasi processo che genera output prima di svuotare la cartella: i file creati durante o dopo l’esecuzione possono invalidare l’aspettativa che la cartella resti vuota.
Verifica la prima esecuzione e quelle successive
Esegui il comando rapido usando il pulsante di esecuzione dell’editor. Prima di modificare il percorso di destinazione, confronta il risultato con questa sequenza. Apple documenta come testare un comando rapido personalizzato dal suo editor. Testare un comando rapido personalizzato
- Verifica che
Shortcut Output Demoesista ancora nel Finder. - Verifica che i file di esempio visibili e la cartella
Batchsiano scomparsi. - Verifica che lo script abbia restituito il messaggio della cartella vuota; il controllo finale include anche gli elementi nascosti.
- Esegui di nuovo il comando rapido. Una cartella già vuota dovrebbe produrre lo stesso messaggio.
- Rinomina temporaneamente la cartella demo vuota ed esegui di nuovo il comando rapido. Lo script dovrebbe interrompersi con l’errore che segnala la cartella esistente. Poi ripristina il nome.
Lo script di svuotamento ha superato il controllo della sintassi di Bash con bash -n. Per questo articolo non è stato eseguito in Comandi Rapidi su macOS, quindi la sequenza di prova con la cartella temporanea resta parte della configurazione.
Se la rimozione non riesce, controlla l’elemento segnalato e il contenuto rimasto nella cartella prima di riprovare. Una destinazione mancante, una directory non leggibile e una rimozione non riuscita sono condizioni diverse; lo script non le trasforma in un messaggio di successo.
Riutilizza la cartella senza dare per scontata la gestione delle collisioni
Dopo aver verificato che la prova temporanea si comporti come previsto, modifica l’assegnazione della destinazione indicando la cartella di output scelta. Controllane prima il contenuto e mantieni lo stesso contratto: tutto ciò che contiene è output sostituibile, inclusi gli elementi nascosti e le sottocartelle.
Svuotare una cartella rimuove i nomi esistenti in quel momento. Non stabilisce come si comporta una successiva azione di esportazione o salvataggio quando due nuovi output hanno lo stesso nome. Controlla le opzioni e la descrizione dell’azione specifica invece di presumere che questa reimpostazione consenta di sostituire, unire o rinominare automaticamente i file. Apple fornisce le descrizioni delle azioni tramite Show Info. Controllare il comportamento di un’azione
Puoi anche eseguire il comando rapido salvato da Terminale usando il comando completo qui sotto. Apple documenta come racchiudere tra virgolette i nomi dei comandi rapidi che contengono spazi e segnala che il comando shortcuts restituisce 0 in caso di successo o 1 in caso di errore. Eseguire comandi rapidi dalla riga di comando
shortcuts run "Clear Demo Output"
Svuota la cartella e genera gli output seguendo una sequenza precisa: completa il gruppo precedente, svuota la cartella scelta, controlla il risultato, poi crea il gruppo successivo. Così la cartella riutilizzabile ha uno scopo chiaro e le esecuzioni ripetute sono prevedibili.
Fonti
- Creare un comando rapido personalizzato sul Mac — Supporto Apple.
- Navigare nell’elenco delle azioni in Comandi Rapidi sul Mac — Supporto Apple.
- Impostazioni avanzate di privacy e sicurezza in Comandi Rapidi sul Mac — Supporto Apple.
- Usare l’azione Show Alert in un comando rapido sul Mac — Supporto Apple.
- Eliminare file e cartelle sul Mac — Supporto Apple.
- Eseguire comandi rapidi dalla riga di comando — Supporto Apple.
- rm.1 — Distribuzioni Open Source di Apple.
- bash.1 — Distribuzioni Open Source di Apple.