Duda con script vinculado a "rm -R"
- KZKG^Gaara
- Mensajes: 463
- Registrado: Sab, 07 Ago 2010, 14:09
- Ubicación: /dev/kzkggaara
- Contactar:
Duda con script vinculado a "rm -R"
Buenas,
Necesito eliminar todos los archivos de la carpeta ".Trash/cur" de cada buzón de usuarios. La ubicación de estas carpetas es:
/home/vmail/midominio.com/$USER/.Trash/cur
El problema está en $USER, dentro de "/home/vmail/midominio.com/" hay unos 500 directorios, dentro de cada directorio entonces está ".Trash/cur"
Bien, necesitaría un método para que me borre todos los archivos ubicados en "/home/vmail/midominio.com/$USER/.Trash/cur", independientemente de quién sea $USER
Eso sería todo.
Encontré un método bastante rudimentario, listando yo manualmente lo existente en "/home/vmail/midominio.com/", luego en un script pongo:
rm-R/home/vmail/midominio.com/adri/.Trash/cur/*
rm-R/home/vmail/midominio.com/adriana90/.Trash/cur/*
rm-R/home/vmail/midominio.com/alberto/.Trash/cur/*
rm-R/home/vmail/midominio.com/alejandra/.Trash/cur/*
---- etc -----
Pero, cuando se añada un nuevo usuario, y se añada un nuevo directorio a "/home/vmail/midominio.com/", tendría que añadir yo manualmente una línea al script, poniendo:
rm-R/home/vmail/midominio.com/NOMBRE-DE-USUARIO-NUEVO/.Trash/cur/*
Y así cada vez que se añada un usuario nuevo.
Espero alguien me pueda ayudar.
Saludos y gracias por adelantado.
Necesito eliminar todos los archivos de la carpeta ".Trash/cur" de cada buzón de usuarios. La ubicación de estas carpetas es:
/home/vmail/midominio.com/$USER/.Trash/cur
El problema está en $USER, dentro de "/home/vmail/midominio.com/" hay unos 500 directorios, dentro de cada directorio entonces está ".Trash/cur"
Bien, necesitaría un método para que me borre todos los archivos ubicados en "/home/vmail/midominio.com/$USER/.Trash/cur", independientemente de quién sea $USER
Eso sería todo.
Encontré un método bastante rudimentario, listando yo manualmente lo existente en "/home/vmail/midominio.com/", luego en un script pongo:
rm-R/home/vmail/midominio.com/adri/.Trash/cur/*
rm-R/home/vmail/midominio.com/adriana90/.Trash/cur/*
rm-R/home/vmail/midominio.com/alberto/.Trash/cur/*
rm-R/home/vmail/midominio.com/alejandra/.Trash/cur/*
---- etc -----
Pero, cuando se añada un nuevo usuario, y se añada un nuevo directorio a "/home/vmail/midominio.com/", tendría que añadir yo manualmente una línea al script, poniendo:
rm-R/home/vmail/midominio.com/NOMBRE-DE-USUARIO-NUEVO/.Trash/cur/*
Y así cada vez que se añada un usuario nuevo.
Espero alguien me pueda ayudar.
Saludos y gracias por adelantado.
~~» KZKG^Gaara «~~
Usuario #518082 de GNU/Linux
Windows ha detectado que no tiene teclado... presione [F9] para continuar.
Usuario #518082 de GNU/Linux
Windows ha detectado que no tiene teclado... presione [F9] para continuar.
Re: Duda con script vinculado a "rm -R"
Con un poco de la magia de las rutas relativas :
eso borra todos los archivos de la carpeta cur (independientemente de la del usuario) y si cabe la posibilidad de que tenga carpetas dentro , usa la opcion -R
Espero que te sirva.La probe al vuelo aca y funciona perfecto.
saludos , Yosle
Código: Seleccionar todo
rm -R /home/vmail/midominio.com/*/.Trash/cur/*
Espero que te sirva.La probe al vuelo aca y funciona perfecto.
saludos , Yosle
- KZKG^Gaara
- Mensajes: 463
- Registrado: Sab, 07 Ago 2010, 14:09
- Ubicación: /dev/kzkggaara
- Contactar:
Re: Duda con script vinculado a "rm -R"
Joder ..... qué fácil, y a la cara... y no me di cuentayosle escribió:Con un poco de la magia de las rutas relativas :
eso borra todos los archivos de la carpeta cur (independientemente de la del usuario) y si cabe la posibilidad de que tenga carpetas dentro , usa la opcion -RCódigo: Seleccionar todo
rm -R /home/vmail/midominio.com/*/.Trash/cur/*
Espero que te sirva.La probe al vuelo aca y funciona perfecto.
saludos , Yosle
Ya estaba pensando en hacer un script con bucles, y montones de cosas...
jeje, thanks socio.
~~» KZKG^Gaara «~~
Usuario #518082 de GNU/Linux
Windows ha detectado que no tiene teclado... presione [F9] para continuar.
Usuario #518082 de GNU/Linux
Windows ha detectado que no tiene teclado... presione [F9] para continuar.
Re: Duda con script vinculado a "rm -R"
jaja, no te sientas mal..porque.....Eso mas o menos iba a hacer yo!!! , hacer un find que devolviera la ruta a todas las carpetas después con grep pasearlas y hacer el rm al final , hice unas carpetas de prueba para el script y asi fue como "descubri" lo de intercalar el * ...curioso ehh?KZKG^Gaara escribió: Joder ..... qué fácil, y a la cara... y no me di cuenta
Ya estaba pensando en hacer un script con bucles, y montones de cosas...
jeje, thanks socio.
Re: Duda con script vinculado a "rm -R"
Yo tengo una duda con algo similar, la diferencia está en que son cientos de directorios y cada uno de ellos contiene una X cantidad de subdirectorios, es un repositorio de libros electrónicos para las carreras universitarias.
La ventaja es que tienen un mismo patrón de archivos a borrar, que obtengo al descargar con el wget y la opción --mirror:
Por ejemplo, los directorios contienen algo como esto:
los puedo borrar así:
Pero no puedo hacer que entra a las carpetas (recursivamente) y los borre todos, ya intenté hacer un ls+ filtrar+rm -R etc... pero no me funcionó (o se me fueron las pilas porque estoy hasta el cuello con el trabajo).
Si tienen alguna sugerencia me vendría bien, porque está de ostias ir borrándolos directorio por directorio y el autoindex me saca todo lo que hay
PD: Uso el wget con esta opción porque el rsync no pincha para lo que quiero hacer OK.
La ventaja es que tienen un mismo patrón de archivos a borrar, que obtengo al descargar con el wget y la opción --mirror:
Por ejemplo, los directorios contienen algo como esto:
Código: Seleccionar todo
index.html?C=M;O=A
index.html?C=M;O=D
Código: Seleccionar todo
rm -R index.html*
Si tienen alguna sugerencia me vendría bien, porque está de ostias ir borrándolos directorio por directorio y el autoindex me saca todo lo que hay
PD: Uso el wget con esta opción porque el rsync no pincha para lo que quiero hacer OK.
Re: Duda con script vinculado a "rm -R"
Para eso probablemente sea más eficiente usar la funcionalidad del propio wget:Mainser escribió:Yo tengo una duda con algo similar [...] tienen un mismo patrón de archivos a borrar, que obtengo al descargar con el wget y la opción --mirror:
Por ejemplo, los directorios contienen algo como esto:Código: Seleccionar todo
index.html?C=M;O=A index.html?C=M;O=D
Código: Seleccionar todo
wget --reject "index.html?*" --mirror --convert-links ...
Código: Seleccionar todo
wget -R "index.html?*" -m -k ...
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke
- Edmund Burke
Re: Duda con script vinculado a "rm -R"
Saludos Hugo, mil disculpas mano, al parecer no me hice entender, lo que me dices lo tengo claro, eso lo uso cuando no quiero descargar algo con determinada extensión o ignorar algunos archivos (como los dichosos Thumbs.db y otros.... grrrr), pero eso no es lo que quiero hacer, te explico:
Ya descargué el repo de libros completo, ahora lo que quiero hacer es borrar recursivamente todos los archivos con esta máscara index.html* que están dentro de esos directorios. Estos archivos no forman parte del repo de libros original, los hace (localmente) el wget a la hora de descargar porque los utiliza para poder descargar todo lo que hay en los directorios, de aquí obtiene las URLs de los archivos y es por eso que no hay que dárselas una por una, además las usa cuando se quiere sincronizar para hacer las comparaciones y solo descargar lo nuevo e ignorar lo que se descargó ya.
Resumiendo, lo que quiero es borrar recursivamente estos archivos de todos los directorios en cuestión:
saludos.........
H.H
Ya descargué el repo de libros completo, ahora lo que quiero hacer es borrar recursivamente todos los archivos con esta máscara index.html* que están dentro de esos directorios. Estos archivos no forman parte del repo de libros original, los hace (localmente) el wget a la hora de descargar porque los utiliza para poder descargar todo lo que hay en los directorios, de aquí obtiene las URLs de los archivos y es por eso que no hay que dárselas una por una, además las usa cuando se quiere sincronizar para hacer las comparaciones y solo descargar lo nuevo e ignorar lo que se descargó ya.
Resumiendo, lo que quiero es borrar recursivamente estos archivos de todos los directorios en cuestión:
Código: Seleccionar todo
index.html
index.html?C=D;O=A
index.html?C=D;O=D
index.html?C=M;O=A
index.html?C=M;O=D
index.html?C=N;O=A
index.html?C=N;O=D
index.html?C=S;O=A
index.html?C=S;O=D
H.H
Re: Duda con script vinculado a "rm -R"
Resumiendo, lo que quiero es borrar recursivamente estos archivos de todos los directorios en cuestión:
sencillo...pero con el comando find , por eso creo que esto debería ser otro hilo
Código: Seleccionar todo
find /ruta/donde/esta/la/carpeta -name "*.html*" -exec rm {} \;
Código: Seleccionar todo
find /ruta/donde/esta/la/carpeta -name "*.html*" | xargs rm
con -exec
con xargsreal 0m9.883s
user 0m3.340s
sys 0m5.900s
real 0m0.677s
user 0m0.380s
sys 0m0.310s
Como supongo que trabajas con cientos o decenas de directorios puede mejorar considerablemente el rendimiento
Saludos , yosle
(Solucionado) Eliminar recirsivamente con "rm -R"
Perfecto chama, muchas gracias. Esa era la solución que buscaba, lo hice y pinchó OK.
No inicié otro tema porque pensé que la solución estaría en el uso del RM, pero la idea que das me gustó más
saludos........
H.H
No inicié otro tema porque pensé que la solución estaría en el uso del RM, pero la idea que das me gustó más
saludos........
H.H
Re: (Solucionado) Eliminar recirsivamente con "rm -R"
Mainser escribió:Perfecto chama, muchas gracias. Esa era la solución que buscaba, lo hice y pinchó OK.
No inicié otro tema porque pensé que la solución estaría en el uso del RM, pero la idea que das me gustó más
saludos........
H.H
Me alegro que te haya servido .