Poiché questo è in cima alla ricerca su Google, la risposta più semplice è:
rm $directoryPath/*
dove $directoryPath è la directory che vuoi svuotare. I crediti dovrebbero andare a cbm3384 (che per qualche motivo ha ottenuto voti negativi per questa risposta, perché?)
Se non vuoi confermare:
rm -f $directoryPath/*
Se non ci credi prova man rm
o
mkdir -p 1/2/3; echo 'hello1' > 1/hello1.txt; echo 'hello2' > 1/2/hello2.txt;echo 'hello3' > 1/2/3/hello3.txt
rm 1/2/*
Quanto sopra crea una struttura di directory, che ha 'helloX.txt' in ogni cartella (X è il livello di directory). rm 1/2/*
cancella hello2.txt
e lascia intatta l'altra struttura.
Anche rm */*/*
cancella solo hello2.txt
. È l'unico che corrisponde al modello.
Solo un esempio di Makefile che pulisce la directory tmp di cakephp e lascia intatta la struttura della directory:
clean:
-rm -f tmp/*
-rm -f tmp/*/*
-rm -f tmp/*/*/*
-rm -f tmp/*/*/*/*
Meno davanti al rm
significa "non fermarti sugli errori" (la directory non rimossa restituisce un errore). Se vuoi salvare un livello, rimuovi quella riga, ad es. la seconda riga rm rimuove i log.
Fammi sapere se hai un sistema che fa qualcos'altro (BSD?).
MODIFICA: L'ho provato su Ubuntu 12.04, osx lion e shell sourceforge.net. Tutti si comportano come la spiegazione sopra.
find PATH -maxdepth 1 -type f -delete
MA questo non ti chiederà conferma o produrrà ciò che ha appena cancellato. Pertanto è meglio eseguirlo senza prima l'azione -delete e controllare che siano i file corretti.
Puoi usare find
con -type f
solo per file e -maxdepth 1
quindi find
non cercherà i file nelle sottodirectory di /path/to/directory
. rm -i
ti chiederà a ogni eliminazione in modo da poter confermare o negare l'eliminazione. Se non ti interessa che ti venga chiesta la conferma di ogni eliminazione, modificala in rm -fv
(-f
per forza la cancellazione). Il -v
flag fa in modo che ad ogni cancellazione venga stampato un messaggio che dice quale file è stato appena cancellato.
find /path/to/directory -maxdepth 1 -type f -exec rm -iv {} \;
Questo dovrebbe soddisfare i criteri:
NON directory
NON sottodirectory
NON file in queste sottodirectory.