Eliminar muchos muchos archivos de una carpeta

Eliminar muchos muchos archivos de una carpeta

Tengo una carpeta con 137795 archivos. Necesito eliminarlos todos. Cuando corro rm *obtengo -bash: /bin/rm: Argument list too long. ¿Cómo supero este error?

Respuesta1

Como puedo ver, no es necesario eliminar el directorio, solo los archivos que contiene. Para que puedas recrearlo

rm -r /path/to/dir && mkdir /path/to/dir

o incluso eliminar sólo archivos dentro

find /path/to/dir -type f -delete

El primero funciona más rápido.

UPD. Tenga en cuenta que la forma en que findpuede no ser óptima desde el punto de vista del consumo de espacio, ya que el tamaño del directorio se reducirá solo después de fsck.Detalles.

Respuesta2

Solución #1:

find /path/to/dir -delete

Solución #2:

rm a*;

rm b*;

rm c*;

etc

Respuesta3

Usar findes probablemente la mejor opción. Algunos de los problemas con las otras respuestas son no eliminar todo lo que hay dentro del directorio o eliminar el directorio mismo. Puedes usarlo lscon xargs, si no hay caracteres especiales, o findcon ciertas opciones.

ls -1 | xargs rm -r

o

find . -depth -path ./.* -prune -o -not -name . -delete

Esto ignorará todo lo que esté en el directorio actual que comience con .( -prune) y eliminará cualquier otro archivo o directorio, siempre que no sea el directorio superior ( .). Primero buscará -depthdentro de los directorios, lo que evitará un error de "directorio no vacío". Si el -notargumento no está disponible en su sistema, utilice !.

información relacionada