Buscar con find y excluir archivos (por su extensión) de los resultados

Yo como muchos saben uso KDE, no obstante aunque me encanta la comodidad y el confort que KDE me brinda (por ser extremadamente completo), no uso ni remotamente todas las opciones que trae, inclusive ni algunas básicas.

Cuando cualquiera de ustedes desea buscar en X carpeta todos los archivos .jpg o simplemente los que en su nombre contengan “boda”, usan el buscador del sistema, pues yo no 🙂

No es que yo sea más geek, nerd o freak que otros, yo simplemente uso find (en terminal obvio) pues lo encuentro increíblemente más productivo, me es más simple para mí buscar con find en una terminal que tenga abierta (usando Yakuake) que tener que abrir el buscador del sistema.

Pues bien, hace no mucho quise buscar todos los archivos cuyo nombre contenga “collection“, pero yo NO quería ver los archivos .gif, ¿cómo lograr algo así? … ¿cómo decirle a find que no me muestre los .gif aún cuando su nombre contenga “collection”?

Lo primero que se me ocurrió es algo tan simple como:

find $HOME -iname *collection* | grep -v .gif

 Esto buscaría con find todos los archivos que tengan “collection” en su nombre, pero usando grep me aseguraba que en la terminal solo se me muestre lo DIFERENTE a “.gif” y… sí, funciona de maravillas 😀

Pero en realidad no hace falta usar dos comandos (find + grep) para lograr esto, con find solo nos es suficiente:

find $HOME -iname *collection* -not \( -iname "*\.gif" \)

Y listo… pero acá no acaba el post 🙂

¿Y si queremos borrar esos archivos que se mostraron?

Para ello solo debemos agregar el parámetro -delete en la línea, o sea:

find $HOME -iname *collection* -not \( -iname "*\.gif" \) -delete

¿Y si queremos solamente cambiar los permisos a 755?

Para ello usaremos el -exec de find:

find $HOME -iname *collection* -not \( -iname "*\.gif" \) -exec chmod 755 {} \;

Y listo 🙂
Nada, que espero les resulte de interés…


30 comentarios

  1.   KZKG^Gaara dijo

    Probando nueva funcionalidad de reconocimiento de Entorno de Escritorio.
    Prueba No.1

    1.    KZKG^Gaara dijo

      Funciona DPM … genial 🙂

      1.    elav dijo

        Y que se supone que se ponga en el User Agent?

        1.    KZKG^Gaara dijo

          Ahora hago un artículo explicando esto 🙂
          No obstante… si pones “KDE” en el UserAgent te saldrá el logo de KDE, si pones “Xfce” bueno lo obvio, etc.

          Ahora, si alguien comenta desde Chakra, Kubuntu, o usando Konqueror o Rekonq… el blog automáticamente pondrá el ícono de KDE.

          Al igual que si comentan de Xubuntu, pondrá el de Xfce.

          1.    elav dijo

            😛 Nice

          2.    dhunter dijo

            No había un ícono más cool para kde?

  2.   dhunter dijo

    Probando user agent…

    1.    KZKG^Gaara dijo

      Lo cierto es que el de KDE no es el mejor precisamente… pero, no tenía a mano en ese momento otro mejor.

      By the way… no necesitas configurar tu UserAgent, como comentas desde Kubuntu programé esta función para que si es Kubuntu ponga automáticamente el ícono de KDE 🙂

    2.    truko22 dijo

      ^___^ probando

  3.   Rots87 dijo

    que clase de brujeria es esa!!!!! jajaja mentiras esperrando el articulo del user agent… por cierto no se si soy yo o este ariculo siento que ya se vio o son ilusiones mias

  4.   Rayonant dijo

    Vaya pues interesante, aunque aún no me acostumbro a usar find y expresiones regulares, lo mio se limita a usar locate xD.

    1.    KZKG^Gaara dijo

      El aspecto negativo de locate es que no funciona en tiempo real, o sea, si recién acabo de copiar algo al ordenador locate aún no indexa esos archivos nuevos, además… find permite más cosas como usar el -exec 🙂

      1.    davidlg dijo

        con el comando -exec eso iba a comentar yo, es muy útil para reorganizar música/series por ejemplo.
        Yo lo uso para mover las series del torrent, ya que crea varias carpetas y dentro los archivos descargados

      2.    anonimo dijo

        Nada que un simple # updatedb no pueda solucionar….sigue siendo mas facil y más rápido usar l# updatedb && locate

        Saludos

        1.    KZKG^Gaara dijo

          O sea, tendría que ejecutar updatedb para que actualice los índices, esperar a que termine y entonces hacer la búsqueda? …
          No digo que sea una forma errónea ni mucho menos, pero antes de ir por ese camino personalmente prefiero usar simplemente find y listo.

  5.   Daniel G. dijo

    probando el juguete nuevo 🙂

  6.   FIXOCONN dijo

    no veo el entorno de escritorio

    1.    KZKG^Gaara dijo

      Aún no hay soporte para Cinnamon, básicamente porque no tengo el ícono de Cinnamon… solo por eso 🙂
      Acá puedes leer un poco más al respecto: http://blog.desdelinux.net/desdelinux-tambien-te-muestra-el-entorno-de-escritorio-que-usas-en-tus-comentarios/

  7.   FIXOCONN dijo

    está algún ícono para cinammon

  8.   Giskard dijo

    Probando…

    1.    Giskard dijo

      Bueh, hasta que no cambie el UserAgent ni pendiente. Pero una vez lo cambie y el Chomium se volvio loco. En todo caso, uso LinuxMint con XFCE.

      1.    KZKG^Gaara dijo

        No hay nada malo en cambiar el UserAgent … yo a mi Firefox se lo cambio todo el tiempo 😀

  9.   Lolo dijo

    Está bien conocer los parámetros de find pero con grep hay que escribir menos ¿No?

    1.    KZKG^Gaara dijo

      Sí en efecto 🙂
      En realidad lo importante es tener múltiples formas de lograr el resultado deseado, el conocimiento no ocupa espacio 😀

  10.   Yo Mendieta dijo

    Find es nuestro amigo 🙂

  11.   carlos dijo

    prueba a ver que sale

  12.   costeelation dijo

    Le echaré un vistazo, gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *