Med terminalen: Exempel med kommandot Sök

Här är några exempel som vi kan dra nytta av när vi använder hitta, ett kommando för att söka efter filer eller mappar.

För att få hjälp för kommandokörningen:

man find

för att avsluta manualen, tryck bara på knappen [Q] (gäller alla manualer).

I följande exempel betyder perioden (.) After find (find.) Betyder att vi tittar i den mapp som anges av prompten. Det kan ersättas med valfri sökväg som / home /.

Exempel:

Sök bara efter filer med ett mönster.
find . -type f -name "*.deb"

hitta och kopiera till / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;

Hitta Thumbs.db-filerna och ta bort dem.
find . -type f -name "Thumbs.db" -exec rm -f {} \;

Skapa en ren textfil med md5-filerna i katalogen.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt

Ta bort irriterande .svn-mappar.
find | grep "\.svn$" | xargs rm -fr

Ersätt en text med en annan.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php

Hitta filer uppdaterade för en dag sedan.
find /var/log/[a-z]* \*.sql -mtime +1

Så här genererar du md5sums-filerna i DEB-paketen:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   rätt sade

    ta bort alla andra filer än .txt (självklart .txt kan vara vad som helst)
    hitta. ! -namn "* .txt" -exec rm {} \;

    sök utan skiftlägeskänsliga matchningar:
    hitta. -namn «* foobar *»

    Anmärkning: Kommandot -exec kan inte köras med parametern -iname.

  2.   taregon sade

    Utmärkt 😉 det här kommandot borde vara obligatoriskt att veta innan jag var rädd för de alternativ som fanns i 'mannen' för att kunna göra sökningar, men om jag gav det möjlighet kunde jag se hur kraftfull det är när det gäller att hitta det jag glömde på min hårddisk 😐

  3.   Hugo sade

    Sök är verkligen användbart, särskilt för att hantera filnamn som innehåller mellanslag och andra ovanliga tecken. Till exempel kom jag en gång ihåg att det inte fanns något sätt att komprimera en uppsättning kataloger förrän det föll på mig att använda find med xargs (vilket är mycket snabbare än -exec förresten) och problem löst.

    En annan av mina föredragna användningsområden för find-kommandot är att rekursivt ändra behörigheter:


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

  4.   elektron222 sade

    Intressant ^ _ ^

    1.    KZKG ^ Gaara sade

      Hur cool Chakra-ikonen ser ut hahahahahaha 😀

      1.    sieg84 sade

        Mageia saknas 🙂

        1.    KZKG ^ Gaara sade

          Japp rätt 😀
          Just nu bygger jag på det här hehehehe. Tack 🙂

          1.    lesterzon sade

            Och en för min distro ...

  5.   Archero sade

    Tack, kommandona mycket användbara, jag tvivlar på att jag kommer ihåg att i Ubuntu använde jag en gång lokaliseringskommandot, är det något alias för att hitta eller ...

    1.    Hugo sade

      Negativ. lokalisera, mlocate y sloca är andra sökkommandon som till skillnad från finna, de använder en databas som behöver uppdateras regelbundet med kommandot uppdateradb.

      Båda typerna av kommandon har sina användningsområden. Jag använder till exempel vanligtvis uppdateradb följt av mlocatelokalisera när jag verkligen vill hitta något snabbt i en katalog med mycket data som jag vet inte uppdateras för ofta (till exempel ett paket i ett arkiv), och finna när jag vill göra något mer komplicerat som att kombinera sökresultaten med ett annat kommando eller när jag bara inte vill skapa databasen eftersom jag vet att katalogen där jag ska söka inte innehåller för mycket information.

      1.    Archero sade

        Tack så mycket Hugo, utmärkt förklaring, jag kan bara säga hur kraftfull terminalen är i GNU / Linux!

  6.   sandra sade

    Hej, jag ser att det här är ett gammalt ämne, men förhoppningsvis kan du fortfarande hjälpa mig.

    Jag lär mig att använda regexp eftersom jag såg ett dokument och jag letar efter orden error or fail och deras derivatfel eller failed or failure etc och min regexp är:
    : / \ (. * \ (fel | misslyckas \). * \) /
    När jag kör det säger det mig att det inte finns några matchningar 🙁 utan till
    :/\(.*\(fel\).*\)/
    o
    : / \ (. * \ (misslyckas \). * \) /
    Om du hittar matchningar, kan du berätta för mig hur jag har fel?

    1.    KZKG ^ Gaara sade

      Vad är hela linjen du sätter?

      För att testa och se om jag hittar lösningen.

      Å andra sidan, hur som helst om du vill kan du kolla här: https://blog.desdelinux.net/?s=expresiones+regulares

  7.   esthefani sade

    Snälla hjälp mig, jag vill kopiera filerna som slutar på * _ZFIR0069.TXT till en annan sökväg och lägga till ett datum i slutet, jag gör ett kommando:

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

    Men resultatet är:

    {} _20160225% -> men den kopierar bara en fil av alla och den döps om på det sättet

    Vad jag vill är att den kopierar alla filer och har det här formatet * _ZFIR0069_ $ datum .TXT

    Hälsningar.

  8.   pepG sade

    Vad är skillnaden mellan hitta * -typ d och hitta / hem / pepe -typ d? Jag vill lista katalogerna för mitt konto och jag förstår inte varför den första gör det korrekt och den andra inte. hjälp till

  9.   Kaike sade

    Hur kan jag hitta filer som slutar i siffror? Tack