9 votos

Cómo eliminar el contenido de un directorio en Centos

Necesito eliminar todo el contenido de una carpeta en CentOS pero no la carpeta en sí.

Por ejemplo: Tengo una carpeta llamada "MYFOLDER" que contiene las subcarpetas FOLD_1, FOLD_2, FOLD_3, FOLD_4... etc , y algunos archivos. Necesito eliminar todas estas carpetas y archivos pero no la carpeta contenedora MYFOLDER. Necesito este directorio para dirigir los resultados de un proceso anterior.

He probado con el rm -rf pero esto elimina también la carpeta del contenedor.

11voto

Ignacio Vazquez-Abrams Puntos 30600

En su lugar, elimine el contenido de la carpeta.

rm -r MYFOLDER/*

1 votos

Tenga en cuenta que esto no oculta los archivos/directorios dentro de MYFOLDER

1 votos

@tylerl: Lo hace si se pone shopt -s dotglob primero.

0 votos

Esto requiere que usted apruebe manualmente y/n descendiendo en cada subdirectorio, lo cual es una completa pérdida de tiempo. El comando correcto manejaría todo eso automáticamente para que no te quedes atascado con 50 avisos.

5voto

jcollum Puntos 10236

Puedes usar:

rm -r MYFOLDER/{.[^.],.??*}

Esto elimina también los archivos y carpetas ocultos. Si tiene demasiados archivos en el directorio MYFOLDER, entonces debería ejecutar en su lugar:

ls MYFOLDER/{.[^.],.??*}|xargs rm -r

0 votos

Tengo más de 500k archivos dentro de mi meta/ así que quise probar la alternativa de xargs, sin embargo me salen estos mensajes de error: ls: cannot access meta/.[^.]: No such file or directory ls: cannot access meta/.??*: No such file or directory rm: missing operand

1 votos

Asegúrese de que está utilizando bash Shell. El Shell debe soportar "Brace Expansion" y "Regular Expressions" para los patrones de archivo.

3voto

JDS Puntos 505

La forma más fácil, en mi opinión, es borrar todo el directorio, incluido el mismo, y luego volver a crear la carpeta. Hay situaciones en las que esto no es una buena solución (como un scripts desatendidos o pipelines más complejos), pero no especificaste por qué no querías borrar la carpeta.

rm -rf foldername
mkdir foldername

Uy. Lo has especificado (he releído tu post). Bueno, aún así, borrar y volver a crear puede funcionar. Sobre todo si encadenas comandos, como

rm -rf foldername && mkdir foldername

O

rm -rf foldername; mkdir foldername

0 votos

A veces no se tiene permiso en la carpeta padre o se quiere conservar ciertos atributos que se desconocen. Por ejemplo, no puedes eliminar tu carpeta de inicio como usuario no root, pero puedes eliminar todo lo que esté debajo de ella.

0 votos

Esta debería ser la respuesta aceptada. +1

0voto

Janne Pikkarainen Puntos 22249

¿Qué tal si

cd MYFOLDER
find . | rm -rf

Esto elimina también los archivos ocultos (los que empiezan por un punto).

1 votos

Esto borrará también MYFOLDER.

0voto

srapsware Puntos 3

Prueba con rm -r -f filename su trabajo con CentOS 6.x

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: