Dado que esto es alto en la búsqueda de Google, la respuesta más simple es:
rm $directoryPath/*
donde $directoryPath es el directorio que desea vaciar. Los créditos deben ir a cbm3384 (que por alguna razón obtuvo votos negativos para esta respuesta, ¿por qué?)
Si no desea confirmar:
rm -f $directoryPath/*
Si no crees, prueba 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/*
Lo anterior crea una estructura de directorios, que tiene 'helloX.txt' en cada carpeta (X es el nivel de directorio). rm 1/2/*
elimina hello2.txt
y deja la otra estructura intacta.
También rm */*/*
elimina solo hello2.txt
. Es el único que coincide con el patrón.
Solo un ejemplo de un Makefile que limpia el directorio tmp de cakephp y deja intacta la estructura del directorio:
clean:
-rm -f tmp/*
-rm -f tmp/*/*
-rm -f tmp/*/*/*
-rm -f tmp/*/*/*/*
Menos delante del rm
significa "no detenerse ante errores" (el directorio no eliminado devuelve un error). Si desea guardar algún nivel, simplemente elimine esa línea, p. la segunda línea rm elimina los registros.
Avíseme si tiene un sistema que hace algo más (¿BSD?).
EDITAR: Probé esto en ubuntu 12.04, osx lion y sourceforge.net shell. Todos se comportan como la explicación anterior.
find PATH -maxdepth 1 -type f -delete
PERO esto no le pedirá confirmación ni generará lo que acaba de eliminar. Por lo tanto, es mejor ejecutarlo sin la acción de eliminar primero y verificar que sean los archivos correctos.
Puedes usar find
con -type f
solo para archivos y -maxdepth 1
entonces find
no buscará archivos en subdirectorios de /path/to/directory
. rm -i
le preguntará en cada eliminación para que pueda confirmar o rechazar la eliminación. Si no le importa que le pidan confirmación de cada eliminación, cámbielo a rm -fv
(-f
para fuerza la eliminación). El -v
flag hace que con cada eliminación, se imprima un mensaje diciendo qué archivo se acaba de eliminar.
find /path/to/directory -maxdepth 1 -type f -exec rm -iv {} \;
Esto debe cumplir con los criterios:
NO directorios
NO subdirectorios
NOT archivos en estos subdirectorios.