Med terminalen: Eksempler med Finn-kommandoen

Her er noen eksempler som vi kan dra nytte av når vi bruker Finn, en kommando for å søke etter filer eller mapper.

For å få hjelp til kommandokjøringen:

man find

For å forlate manualen, trykk bare på tasten [Q] (gyldig for enhver manual).

I de følgende eksemplene betyr perioden (.) Etter finn (finn.) Betyr at vi ser i mappen som er angitt av ledeteksten. Den kan erstattes av en hvilken som helst gyldig bane som / home /.

eksempler:

Bare søk etter filer med et mønster.
find . -type f -name "*.deb"

finn og kopier til / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;

Finn Thumbs.db-filene og slett dem.
find . -type f -name "Thumbs.db" -exec rm -f {} \;

Lag en ren tekstfil med md5-filene i katalogen.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt

Slett irriterende .svn-mapper.
find | grep "\.svn$" | xargs rm -fr

Erstatt en tekst med en annen.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php

Finn filer oppdatert for opptil en dag siden.
find /var/log/[a-z]* \*.sql -mtime +1

Slik genererer du md5sums-filene til DEB-pakkene:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   ordentlig sa

    slett alle andre filer enn .txt (åpenbart .txt kan være hva som helst)
    finne. ! -navn "* .txt" -exec rm {} \;

    søk uten store og små bokstaver:
    finne. -navn «* foobar *»

    Merknad: -exec-kommandoen kan ikke kjøres med parameteren -iname.

  2.   taregon sa

    Utmerket 😉 denne kommandoen burde være obligatorisk å vite før jeg ble redd av alternativene som fantes i 'mennesket' for å kunne gjøre søk, men å gi den muligheten til å se hvor kraftig den er når det gjelder å finne det jeg har glemt på harddisken min 😐

  3.   Hugo sa

    Finn er absolutt nyttig, spesielt for å håndtere filnavn som inneholder mellomrom og andre uvanlige tegn. For eksempel husket jeg en gang at det ikke var mulig å komprimere et sett med kataloger, før det falt meg inn å bruke find med xargs (som for øvrig er mye raskere enn -exec), og problemet ble løst.

    En annen av mine foretrukne bruksområder for finn-kommandoen er å endre rekursivt tillatelser:


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

  4.   elektron222 sa

    Interessant ^ _ ^

    1.    KZKG ^ Gaara sa

      Hvor kult Chakra-ikonet ser ut hahahahahaha 😀

      1.    sieg84 sa

        Mageia mangler 🙂

        1.    KZKG ^ Gaara sa

          Yup right 😀
          Akkurat nå er jeg basert på dette hehehehe. Takk 🙂

          1.    lesterzone sa

            Og en for min distro ...

  5.   Archero sa

    Takk, kommandoene er veldig nyttige. Jeg er i tvil om at jeg husker at jeg i Ubuntu en gang brukte lokaliseringskommandoen, er det noe alias for finne eller ...?

    1.    Hugo sa

      Negative. finne, mlocate y slå av er andre søkekommandoer som i motsetning til finne, de bruker en database som regelmessig må oppdateres med kommandoen oppdatertb.

      Begge typer kommandoer har sin bruk. Jeg bruker for eksempel vanligvis oppdatertb etterfulgt av mlocatefinn når jeg virkelig vil finne noe raskt i en katalog med mye data som jeg vet ikke blir oppdatert for ofte (for eksempel en pakke i et depot), og finne når jeg vil gjøre noe mer komplekst som å kombinere søkeresultatene med en annen kommando, eller når jeg bare ikke vil generere databasen fordi jeg vet at katalogen jeg skal søke i ikke inneholder for mye informasjon.

      1.    Archero sa

        Tusen takk Hugo, utmerket forklaring, jeg kan bare si hvor kraftig terminalen er i GNU / Linux!

  6.   sandra sa

    Hei, jeg ser dette er et gammelt tema, men forhåpentligvis kan du fortsatt hjelpe meg.

    Jeg lærer å bruke regexp siden jeg så at jeg har et dokument, og jeg leter etter ordene error or fail og dets derivatfeil eller failed or failure etc, og min regexp er:
    : / \ (. * \ (feil | mislykkes \). * \) /
    Når du utfører den, forteller den meg at det ikke er treff matches men til
    :/\(.*\(feil\).*\)/
    o
    : / \ (. * \ (mislykkes \). * \) /
    Hvis du finner treff, kan du fortelle meg hvordan jeg tar feil?

    1.    KZKG ^ Gaara sa

      Hva er hele linjen du legger?

      Å teste og se om jeg finner løsningen.

      På den annen side, hvis du vil, kan du sjekke her: https://blog.desdelinux.net/?s=expresiones+regulares

  7.   esthefani sa

    Hjelp meg, jeg vil kopiere filene som slutter på * _ZFIR0069.TXT til en annen bane og legge til en dato på slutten, jeg gjør en kommando:

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

    Men resultatet er:

    {} _20160225% -> men den kopierer bare én fil av alle, og den blir omdøpt på den måten

    Det jeg ønsker er at den kopierer alle filene og har dette formatet * _ZFIR0069_ $ dato .TXT

    Hilsener.

  8.   pepG sa

    Hva er forskjellen mellom find * -type d og find / home / pepe -type d? Jeg vil liste katalogene til kontoen min, og jeg forstår ikke hvorfor den første gjør det riktig, og den andre ikke. hjelp til

  9.   Kaike sa

    Hvordan kan jeg finne filer som ender med tall? Takk