%20archivos%20coincidentes%20en%20una%20m%C3%A1quina%20Linux.png)
Quiero eliminar un archivo de configuración específico para Awstats para cada usuario del cuadro. ¿Cuál es la mejor manera de eliminarlos, y posiblemente, en una sola línea?
Todos los archivos están bajo /home
y tienen esta estructura:
/home/{username1}/domains/{domain1}/public_html/awstats/.data/awstats.{domain1}.conf
/home/{username1}/domains/{domain2}/public_html/awstats/.data/awstats.{domain2}.conf
/home/{username2}/domains/{domain1}/public_html/awstats/.data/awstats.{domain1}.conf
Algunas /home/{username}/domains/
carpetas tienen varias subcarpetas de dominio.
Respuesta1
Has probado
rm /home/*/domains/*/public_html/awstats/.data/awstats.*.conf
?
Advertencia: si hay un archivo cuyo nombre es algo así como
/home/phred/domains/sci-fi/public_html/awstats/.data/awstats.fantasy.conf
es decir, las dos apariciones de {domain1}
no coinciden, entonces el comando anterior también lo eliminará. ¿Es eso un problema?
PD: A menos que verifiques que las dos coincidencias {domain1}
son lo que estás preguntando, o hay algo más que me falta, esta pregunta no se trata de expresiones regulares (regexs). Cuando se utilizan *
, ?
y [
(con un correspondiente ]
) en la línea de comando del shell, se llamancomodines.
Respuesta2
En /home
ejecutar el siguiente comando
find . -name 'awstats*conf' | xargs rm
Antes de enviar el resultado, xargs
ejecute el programa find . -name 'awstas*.conf
por sí solo para verificar que solo enumere los archivos que desea eliminar. Canalice a xargs rm
solo después de confirmar esto.
Cuando find
se usa como se muestra arriba, buscará recursivamente archivos que coincidan con la expresión regular especificada. Para obtener más información, consulte las páginas de manual para buscar y xargs.