Amb el terminal: Exemples amb la comanda Find

A continuació, alguns exemples que podem aprofitar quan fem ús de Cercar, Una ordre per buscar arxius o carpetes.

Per obtenir l'ajuda d'la comanda amb:

man find

per abandonar el manual n'hi ha prou amb prémer la tecla [Q] (Vàlid per a qualsevol manual).

En els exemples següents el punt (.) Després de find (find.) Vol dir que estem buscant a la carpeta que indica l'indicador. Es pot substituir per qualsevol ruta vàlida com / home /.

Exemples:

Simplement buscar arxius amb un patró.
find . -type f -name "*.deb"

buscar i copiar cap / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;

Cerca els arxius Thumbs.db i eliminar-los.
find . -type f -name "Thumbs.db" -exec rm -f {} \;

Crear un arxiu de text pur amb el md5 dels fitxers en el directori.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt

Eliminar les molestes carpetes .svn.
find | grep "\.svn$" | xargs rm -fr

Reemplaça un text per un altre.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php

Cerca els arxius actualitzats fins a un dia enrere.
find /var/log/[a-z]* \*.sql -mtime +1

Per Generar els fitxers md5sums dels paquets DEB:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   correcte va dir

    eliminar tots els arxius que no siguin .txt (òbviament .txt pot ser qualsevol cosa)
    find. ! -name «* .txt» -exec rm {} \;

    cercar sense coincidències de majúscules o minúscules:
    find. -iname «* foobar *»

    Observació: no es pot executar la comanda -exec amb el paràmetre -iname.

  2.   taregon va dir

    Excel·lent 😉 aquesta comanda hauria de ser obligatori saber-ho, abans em feia por la opcions que existien a 'man' per poder fer cerques, però donant-li l'oportunitat vaig poder veure el potent que és a l'hora de trobar allò que oblidi en el meu disc dur 😐

  3.   Hugo va dir

    Find és certament útil, especialment per a bregar amb noms d'arxius que inclouen espais i altres caràcters inusuals. Per exemple, recordo una vegada que no hi havia manera que aconseguís comprimir un conjunt de directoris, fins que es va acudir fer servir find amb xargs (que per cert és molt més ràpid que -exec), i problema resolt.

    Un altre dels meus usos preferits per la comanda find és canviar permisos recursivament:


    find . -type d -print0 | xargs -0 chmod 755
    find . -type f -print0 | xargs -0 chmod 644

  4.   electron222 va dir

    Interessant ^ _ ^

    1.    KZKG ^ Gaara va dir

      Què xulo es veu la icona de Chakra jajajajajaja 😀

      1.    sieg84 va dir

        falta el de Mageia 🙂

        1.    KZKG ^ Gaara va dir

          Sip cert 😀
          Ja mateix em poso en funció d'aquest jejejeje. Thanks 🙂

          1.    lesterzone va dir

            I un per la meva distro ...

  5.   Arqueó va dir

    Gràcies, molt útils els ordres, tinc un dubte recordo que en Ubuntu alguna vegada vaig utilitzar la comanda locate ¿és algun àlies de find o ...?

    1.    Hugo va dir

      Negatiu. localitzar, mlocate y slocate són altres comandaments de recerca que a diferència de trobar, Utilitzen una base de dades que necessita actualitzar-se periòdicament amb la comanda actualitzatb.

      Tots dos tipus d'ordres tenen la seva utilitat. Jo per exemple sòl usar actualitzatb seguit de mlocatelocate quan realment vull buscar alguna cosa ràpid en un directori amb moltes dades que sé que no s'actualitza massa freqüentment (per exemple, un paquet en un repositori), i trobar quan vull fer alguna cosa més complex com combinar els resultats de cerca amb un altre ordre, o quan simplement no vull generar la base de dades perquè es que el directori en el qual vaig a buscar no conté massa informació.

      1.    Arqueó va dir

        Moltíssimes gràcies Hugo, excel·lent explicació, només puc dir Que potent és la terminal en gnu / linux!

  6.   Sandra va dir

    Hola, veig que és un tema vell, però tant de bo encara puguin ajudar-me.

    Estic aprenent a fer servir les regexp des vaig veure tinc un document i estic buscant les paraules error o fail i els seus derivats errors o failed o failure etc i la meva regexp és:
    : / \ (. * \ (Error | fail \). * \) /
    A l'executar-la em diu que no hi ha coincidències 🙁 però per
    : / \ (. * \ (Error \). * \) /
    o
    : / \ (. * \ (Fail \). * \) /
    Si troba coincidències, podrien dir-me com m'estic equivocant ??

    1.    KZKG ^ Gaara va dir

      Quina és la línia completa que estàs posant?

      Per provar i veure si trobo la solució.

      D'altra banda, de tota manera si vols pots revisar per aquí: https://blog.desdelinux.net/?s=expresiones+regulares

  7.   Esthefani va dir

    Si us plau ajudin-me, vull copiar els arxius que acabin en * _ZFIR0069.TXT a una altra ruta ii agregar a la fin una data, ho estic fent una ordre:

    data = $ (date + »% I% m% d%»)
    find / xcom_rep / GAFI / sortida / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / GAFI / sortida / 42 / {} _ $ data \;

    Però el resultat és:

    {} _20160225% -> però només copia un arxiu de tots i es canvia el nom d'aquesta manera

    El que vull és que copieu els fitxers i que tingui aquest format * _ZFIR0069_ $ data .TXT

    Salutacions.

  8.   pepG va dir

    Quina diferència hi ha entre find * -type di find / home / pepe -type d? vull llistar els directoris del meu compte i no entenc perquè el primer ho fa correctament i el segon no. ayudaa

  9.   Kaike va dir

    com puc cercar fitxers que acabin en numeros gràcies