Met de terminal: Voorbeelden met de opdracht Zoeken

Hier zijn enkele voorbeelden waarvan we kunnen profiteren wanneer we ze gebruiken VIND DE PLEK DIE PERFECT VOOR JOU IS, een commando om naar bestanden of mappen te zoeken.

Om hulp te krijgen bij het uitvoeren van de opdracht:

man find

Om de handleiding te verlaten, drukt u gewoon op de toets [Q] (geldig voor elke handleiding).

In de volgende voorbeelden betekent de punt (.) Na find (find.) Dat we zoeken in de map die wordt aangegeven door de prompt. Het kan worden vervangen door elk geldig pad zoals / home /.

Voorbeelden:

Zoek gewoon naar bestanden met een patroon.
find . -type f -name "*.deb"

zoek en kopieer naar / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;

Zoek de Thumbs.db-bestanden en verwijder ze.
find . -type f -name "Thumbs.db" -exec rm -f {} \;

Maak een puur tekstbestand met de md5-bestanden in de directory.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt

Verwijder vervelende .svn-mappen.
find | grep "\.svn$" | xargs rm -fr

Vervang de ene tekst door de andere.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php

Vind bestanden die tot een dag geleden zijn bijgewerkt.
find /var/log/[a-z]* \*.sql -mtime +1

Om de md5sums-bestanden van de DEB-pakketten te genereren:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   gepast zei

    verwijder alle bestanden behalve .txt (uiteraard kan .txt van alles zijn)
    vind. ! -naam "* .txt" -exec rm {} \;

    zoeken zonder hoofdletterongevoelige overeenkomsten:
    vind. -iname «* foobar *»

    Opmerking: het -exec commando kan niet uitgevoerd worden met de -iname parameter.

  2.   Taregon zei

    Uitstekend 😉 dit commando zou verplicht moeten zijn om te weten, voordat ik bang werd voor de opties die in 'man' bestonden om zoekopdrachten te kunnen doen, maar als ik het de kans gaf, kon ik zien hoe krachtig het is als het gaat om het vinden van wat ik ben vergeten op mijn harde schijf 😐

  3.   Hugo zei

    Zoeken is zeker handig, vooral voor het omgaan met bestandsnamen die spaties en andere ongebruikelijke tekens bevatten. Ik herinnerde me bijvoorbeeld eens dat ik op geen enkele manier een set mappen kon comprimeren, totdat het bij me opkwam om find te gebruiken met xargs (wat trouwens veel sneller is dan -exec), en het probleem was opgelost.

    Een ander een van mijn favoriete toepassingen voor de opdracht find is om de machtigingen recursief te wijzigen:


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

  4.   elektron222 zei

    Interessant ^ _ ^

    1.    KZKG ^ Gaara zei

      Hoe cool het Chakra-pictogram ziet, hahahahahaha 😀

      1.    sieg84 zei

        Mageia ontbreekt 🙂

        1.    KZKG ^ Gaara zei

          Yep rechts 😀
          Op dit moment ben ik gebaseerd op deze hehehehe. Bedankt 🙂

          1.    lesterzone zei

            En een voor mijn distro ...

  5.   boogschieten zei

    Bedankt, de commando's zijn erg handig, ik twijfel eraan dat ik me herinner dat ik in Ubuntu ooit het lokaliseer-commando heb gebruikt, is het een alias van find of ...

    1.    Hugo zei

      Negatief. plaatsen, lokaliseren y plaats zijn andere zoekopdrachten die anders zijn dan vinden, gebruiken ze een database die periodiek moet worden bijgewerkt met de opdracht bijgewerktb.

      Beide soorten commando's hebben hun toepassingen. Ik gebruik bijvoorbeeld meestal bijgewerktb gevolgd door lokaliserenlokaliseren wanneer ik echt iets snel wil vinden in een map met veel gegevens waarvan ik weet dat ze niet te vaak worden bijgewerkt (bijvoorbeeld een pakket in een repository), en vinden als ik iets ingewikkelder wil doen, zoals de zoekresultaten combineren met een ander commando, of als ik de database gewoon niet wil genereren omdat ik weet dat de directory waarin ik ga zoeken niet te veel informatie bevat.

      1.    boogschieten zei

        Heel erg bedankt Hugo, uitstekende uitleg, ik kan alleen maar zeggen hoe krachtig de terminal is in gnu / linux!

  6.   Sandra zei

    Hallo, ik zie dat dit een oud onderwerp is, maar hopelijk kun je me nog steeds helpen.

    Ik leer de regexp te gebruiken sinds ik zag dat ik een document heb en ik zoek naar de woorden fout of mislukt en de afgeleide fouten of mislukt of mislukt enz. En mijn regexp is:
    : / \ (. * \ (fout | mislukt \). * \) /
    Bij het uitvoeren vertelt het me dat er geen overeenkomsten zijn 🙁 maar to
    :/\(.*\(fout\).*\)/
    o
    : / \ (. * \ (mislukt \). * \) /
    Als je overeenkomsten vindt, kun je me dan vertellen dat ik het mis heb?

    1.    KZKG ^ Gaara zei

      Wat is de volledige regel die u zet?

      Om te testen en te zien of ik de oplossing vind.

      Aan de andere kant, als je wilt, kun je hier kijken: https://blog.desdelinux.net/?s=expresiones+regulares

  7.   esthefani zei

    Help me alstublieft, ik wil de bestanden die eindigen op * _ZFIR0069.TXT naar een ander pad kopiëren en aan het einde een datum toevoegen, ik voer een commando uit:

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

    Maar het resultaat is:

    {} _20160225% -> maar het kopieert slechts één van alle bestanden en de naam wordt op die manier gewijzigd

    Wat ik wil is dat het alle bestanden kopieert en dit formaat heeft * _ZFIR0069_ $ date .TXT

    Groeten.

  8.   pepG zei

    Wat is het verschil tussen zoek * -type d en zoek / home / pepe -type d? Ik wil de mappen van mijn account vermelden en ik begrijp niet waarom de eerste het correct doet en de tweede niet. helpen om

  9.   Kaike zei

    Hoe kan ik bestanden vinden die eindigen op cijfers?