Estoy en una carpeta: /var/myfolder
.
En el interior hay algunas otras carpetas como: /var/myfolder/A/
/var/myfolder/B/
`/var/myfolder/C/
etc.
Dentro de cada uno hay algunos archivos con nombres aleatorios. ¿Cómo elimino todos los archivos de todas las carpetas dentro /var/myfolder
?
La estructura (todos los directorios, por ejemplo, A, B, C, etc., dentro /var/myfolder
) debe permanecer intacta.
-type f
! =! -type d
Con zsh, use el
.
calificador glob para hacer coincidir solo los archivos normales:Esto elimina todos los archivos regulares (no ocultos) en el directorio actual y sus subdirectorios de forma recursiva. Agregue el
D
calificador glob para eliminar archivos regulares ocultos (y archivos regulares en directorios ocultos) también.fuente
Puedes correr
rm */*
en/var/myfolder
fuente
rm
no elimina directorios, así que simplemente ejecútelo en todo.Para preservar enlaces simbólicos a directorios:
Y creo que esto también debería funcionar, quizás, de una manera ligeramente optimizada si hay muchos archivos que podrían necesitar pruebas en la versión anterior:
fuente
find
tiene una-xtype
opción para eso.fuente
El eliminará todo dentro de las subcarpetas sin tocar las subcarpetas.
La primera
*
es para los subdirectorios delmyfolder
mismo (A
,B
, ...). El segundo*
es para los archivos enA
,B
, etc.Si hay varias carpetas en el interior
A
,B
etc. Primera carrera:rm /var/myfolder/*/*/*
ejecuterm /var/myfolder/*/*
.fuente
También debe poder cd a la parte superior del árbol de directorios en cuestión, luego ejecutar:
y eso debería eliminar todos los archivos dejando el árbol de directorios intacto. Las opciones -print0 y -0 pueden omitirse si está seguro de que no tiene ningún nombre de archivo o directorio que contenga espacios.
El comando find distingue entre archivos (-tipo f) y enlaces (-tipo l), por lo que esto debería dejar los enlaces intactos, si los hay. No probado sin embargo. En caso de duda, ejecute:
y vea si aparece algo antes de ejecutar el comando find anterior.
fuente
rm
bandera-r, -R, --recursive - remove directories and their contents recursively
en esto?Simplemente use el siguiente comando:
---------------- O --------------------------------- -----------------------
El '*' significa todo, por lo tanto, cuando use *, eliminará todo el contenido. así que use un comando como este o vaya al directorio en el que desea eliminar todo el contenido y simplemente use el siguiente comando:
fuente