Uso de comodines para buscar (y eliminar) archivos coincidentes en una máquina Linux

Uso de comodines para buscar (y eliminar) archivos coincidentes en una máquina Linux

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 /homey 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 /homeejecutar el siguiente comando

find . -name 'awstats*conf' | xargs rm

Antes de enviar el resultado, xargsejecute el programa find . -name 'awstas*.confpor sí solo para verificar que solo enumere los archivos que desea eliminar. Canalice a xargs rmsolo después de confirmar esto.

Cuando findse 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.

información relacionada