¿Cómo suprimir cierto mensaje de error en el comando 'buscar'?

¿Cómo suprimir cierto mensaje de error en el comando 'buscar'?

find /var/log/myfile.*.txt -type f

Si no hay ningún archivo que coincida con ese patrón, obtengo registros de errores como No such file or directory.

Pregunta: ¿cómo puedo evitar solo este mensaje de error? Por supuesto, podría agregar un 2>/dev/nullal final, pero eso eliminaría cualquier error. ¿Cómo podría simplemente ignorar el mencionado?

Porque tengo un cronjob que elimina algunos archivos periódicamente y siempre registra errores si no hay ningún archivo presente:

@daily find /var/log/myfile.*.txt -mtime +7 -delete

Respuesta1

Lo correcto en este caso es no activar este mensaje en absoluto.

Cuando ejecutas esto en un shell

find /var/log/myfile.*.txt -type f

/var/log/myfile.*.txtse expande por el caparazón; findobtiene objetos expandidos o literales /var/log/myfile.*.txtsi no hay coincidencias. Este último caso desencadena No such file or directory.

Puede crear un archivo ficticio primero: touch '/var/log/myfile.dummy_name.txt'(compararelefante en el cairo). Sin embargo, esta "solución" no es realmente elegante.

Una mejor solución es manejar findel patrón:

find /var/log/ -type f -name "myfile.*.txt"

donde las comillas dobles evitan que se peguen en el shell (compáreseeste). En este caso *es manejado por el findpropio porque -nameadmite dichos patrones.

Sin embargo, el enfoque anterior puede coincidir myfile.*.txtencualquier subdirectoriode /var/log/también. Si tu findsoporte -maxdepth, úsalo:

find /var/log/ -maxdepth 1 -type f -name "myfile.*.txt"

Si no, mira esto:¿Limitar la búsqueda POSIX a una profundidad específica?


Probablemente su sistema operativo ya lo utilice logrotate(8)para administrar archivos de registro.

En mi Debian logrotatese ejecuta a diario debido a /etc/cron.daily/logrotate; Debería ser similar en Ubuntu. Puedo crear una configuración personalizada /etc/logrotate.d/y administrar archivos de registro arbitrarios de esta manera. Considere este enfoque.

información relacionada