GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo encontrar y eliminar archivos que contienen un texto específico en sus nombres en Linux

Esta guía explica cómo encontrar y eliminar archivos que contengan un texto o cadena específicos en sus nombres usando el comando de búsqueda en Linux. Además, también aprenderemos a encontrar y eliminar archivos que "no" contienen texto específico en sus nombres.

Introducción

Tengo muchos archivos PDF que tienen algunos consejos y trucos importantes de Linux. Le di a esos archivos un nombre de archivo único para una identificación más fácil.

Digamos, por ejemplo, que guardé los archivos que contienen los detalles de configuración del servidor LDAP como ldapconfig.pdf , archivo de configuración FTP como ftpconfig.pdf , detalles de configuración del servidor DHCP como dhcp_config.pdf , y así.

Convertí la mayoría de ellos en artículos y los publiqué aquí en nuestro blog, para que otros usuarios también puedan beneficiarse de ellos.

El problema es que esos archivos consumen mucho espacio en disco. Dado que tengo cientos de archivos, no quiero buscarlos manualmente y eliminarlos uno por uno. Puede llevar algunas horas encontrar y eliminar todos los archivos.

Mientras buscaba una solución fácil, me di cuenta de que el comando "buscar" me puede ayudar en este caso. Después de revisar las páginas man del comando find, encontré una solución adecuada. Sigue leyendo.

1. Encuentre y elimine archivos que contengan un texto específico en sus nombres en Linux

Echa un vistazo al siguiente ejemplo. Tengo los siguientes archivos en un directorio llamado "Linux_guides" .

$ cd Linux_guides/
$ ls
apache_config.pdf dhcp_config.pdf ldap_config.pdf php_install.pdf
apache_install.pdf ftp_config.pdf mysql_install.pdf

Completé la parte de la instalación, por lo que no necesito los archivos que contienen las palabras "instalar" en sus nombres de archivo.

En lugar de buscar y eliminar los archivos que contienen la frase "instalar" uno por uno, podemos eliminarlos todos a la vez usando el siguiente comando:

$ find -type f -name '*install*' -delete

El comando anterior eliminará todos los archivos que tengan la frase "instalar" a su nombre y conservar todo lo demás.

Si delete opción no está disponible, puede usar cualquiera de los siguientes comandos:

$ find -type f -name '*install*' -exec rm {} \;

O,

$ find -type f -name '*install*' -exec rm {} +

Puede preguntar si podemos hacer lo mismo usando "rm" comando como a continuación:

$ rm *install*

Sí, lo hará. Sin embargo, rm install El comando eliminará todos los archivos que contengan "instalar" en el nombre de archivo del directorio actual y se quejará si algún nombre de directorio contiene "install" .

Pero, el "find -type f" El comando buscará recursivamente solo archivos en el directorio actual y todos los subdirectorios.

1.1. Encuentre archivos que contengan un texto específico en sus nombres en Linux

Si solo desea buscar archivos (no eliminarlos), elimine las opciones -delete -exec rm {} \; -exec rm {} + en los comandos anteriores.

Por ejemplo, el siguiente comando solo encontrará los archivos que contienen la cadena "install" en sus nombres:

$ $ find -type f -name '*install*'

Salida de muestra:

./mysql_install.pdf
./apache_install.pdf
./php_install.pdf

2. Buscar y eliminar archivos que "no" contienen texto específico en sus nombres en Linux

Sabe cómo eliminar un archivo que contiene una frase específica en su nombre. Veamos ahora cómo encontrar y eliminar archivos que no tienen una frase o cadena específica en sus nombres.

Para hacerlo, simplemente agregue '-not' parámetro en el comando de búsqueda como se muestra a continuación.

$ find -type f -not -name '*install*' -delete

El comando anterior no se eliminará los archivos que tienen la frase "install" en su nombre y borrar todo lo demás.

Si eliminar opción no está disponible, puede usar cualquiera de los siguientes comandos:

$ find -type f -not -name '*install*' -exec rm {} \;

O,

$ find -type f -not -name '*install*' -exec rm {} +

Para obtener más detalles sobre el comando de búsqueda, consulte las páginas man.

$ man find

Conclusión

Ahora sabe cómo encontrar un archivo que contiene un nombre específico en su nombre y cómo eliminar un archivo que tiene y no ha tenido una palabra específica en su nombre. Esto será útil cuando desee eliminar una gran cantidad de archivos del mismo tipo en un directorio.


Linux
  1. Eliminar archivos y directorios por sus nombres. ¿El fichero o directorio no existe?

  2. Cómo encontrar texto específico usando GREP en Linux

  3. Cómo encontrar y eliminar directorios y archivos vacíos en Unix

  4. Cómo encontrar y eliminar directorios y archivos vacíos en Linux

  5. ¿Cómo puedo usar xargs para copiar archivos que tienen espacios y comillas en sus nombres?

Cómo encontrar archivos según sus permisos en Linux

Cómo encontrar y eliminar enlaces simbólicos rotos en Linux

Cómo encontrar y eliminar directorios vacíos en Linux

Cómo encontrar archivos que contengan una cadena de texto específica en Linux

Cómo encontrar archivos duplicados en Linux y eliminarlos

Cómo eliminar archivos y directorios usando la línea de comandos de Linux