Med terminalen: Eksempler med Find-kommandoen

Her er nogle eksempler, som vi kan drage fordel af, når vi bruger Finde, en kommando til at søge efter filer eller mapper.

For at få hjælp til kommandokørslen:

man find

for at forlade manualen skal du blot trykke på tasten [Q] (gælder for enhver manual).

I de følgende eksempler betyder perioden (.) Efter find (find.) Betyder, at vi ser i den mappe, der er angivet med prompten. Det kan erstattes af enhver gyldig sti som / home /.

Eksempler:

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

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

Find Thumbs.db-filerne, og slet dem.
find . -type f -name "Thumbs.db" -exec rm -f {} \;

Opret en ren tekstfil med md5-filerne i biblioteket.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt

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

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

Find filer opdateret for op til en dag siden.
find /var/log/[a-z]* \*.sql -mtime +1

Sådan genereres md5sums-filerne i DEB-pakkerne:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   passende sagde han

    slet alle andre filer end .txt (selvfølgelig .txt kan være hvad som helst)
    finde. ! -navn "* .txt" -exec rm {} \;

    søg uden store og små bogstaver:
    finde. -navn «* foobar *»

    Bemærk: kommandoen -exec kan ikke udføres med parameteren -iname.

  2.   taregon sagde han

    Fremragende 😉 denne kommando burde være obligatorisk at vide, før jeg var bange for de muligheder, der eksisterede i 'mennesket' for at kunne foretage søgninger, men ved at give det muligheden kunne jeg se, hvor kraftig det er, når det kommer til at finde det, jeg har glemt på min harddisk 😐

  3.   Hugo sagde han

    Find er bestemt nyttigt, især til behandling af filnavne, der indeholder mellemrum og andre usædvanlige tegn. For eksempel husker jeg engang, at der ikke var nogen måde, jeg kunne klare at komprimere et sæt mapper, før det faldt mig op at bruge find med xargs (hvilket forresten er meget hurtigere end -exec), og problemet blev løst.

    En anden af ​​mine foretrukne anvendelser til findkommandoen er at rekursivt ændre tilladelser:


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

  4.   elektron222 sagde han

    Interessant ^ _ ^

    1.    KZKG ^ Gaara sagde han

      Hvor sejt Chakra-ikonet ser ud hahahahahaha 😀

      1.    sieg84 sagde han

        Mageia mangler 🙂

        1.    KZKG ^ Gaara sagde han

          Yup højre 😀
          Lige nu er jeg baseret på dette hehehehe. Tak 🙂

          1.    lesterzone sagde han

            Og en til min distro ...

  5.   Archero sagde han

    Tak, kommandoerne meget nyttige, jeg er i tvivl om, at jeg husker, at jeg i Ubuntu engang brugte lokaliseringskommandoen, er det noget alias for find eller ...?

    1.    Hugo sagde han

      Negativ. lokalisere, mlocate y skifte er andre søgekommandoer, der i modsætning til find, de bruger en database, der regelmæssigt skal opdateres med kommandoen opdateretb.

      Begge typer kommandoer har deres anvendelser. Jeg bruger for eksempel normalt opdateretb efterfulgt af mlocatefind, når jeg virkelig vil søge efter noget hurtigt i en mappe med en masse data, som jeg ved ikke opdateres for ofte (for eksempel en pakke i et arkiv), og find når jeg vil gøre noget mere komplekst som at kombinere søgeresultaterne med en anden kommando, eller når jeg bare ikke ønsker at generere databasen, fordi jeg ved, at den mappe, hvor jeg skal søge, ikke indeholder for meget information.

      1.    Archero sagde han

        Mange tak Hugo, fremragende forklaring, jeg kan kun sige, hvor kraftig terminalen er i GNU / Linux!

  6.   Sandra sagde han

    Hej, jeg ser dette er et gammelt emne, men forhåbentlig kan du stadig hjælpe mig.

    Jeg lærer at bruge regexp, da jeg så et dokument, og jeg leder efter ordene error or fail og dets afledte fejl eller failed or failure osv. Og min regexp er:
    : / \ (. * \ (fejl | mislykkes \). * \) /
    Når det udføres, fortæller det mig, at der ikke er nogen matches 🙁 men til
    :/\(.*\(fejl\).*\)/
    o
    : / \ (. * \ (mislykkes \). * \) /
    Hvis du finder matches, kan du fortælle mig, hvordan jeg tager fejl?

    1.    KZKG ^ Gaara sagde han

      Hvad er den fulde linje, du lægger?

      At teste og se om jeg finder løsningen.

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

  7.   esthefani sagde han

    Hjælp mig venligst, jeg vil kopiere filerne, der slutter med * _ZFIR0069.TXT til en anden sti og tilføje en dato til slutningen, jeg laver en kommando:

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

    Men resultatet er:

    {} _20160225% -> men den kopierer kun en fil af alle, og den omdøbes på den måde

    Hvad jeg ønsker er, at det kopierer alle filerne og har dette format * _ZFIR0069_ $ dato. TXT

    Greetings.

  8.   pepG sagde han

    Hvad er forskellen mellem find * -type d og find / home / pepe -type d? Jeg vil have en liste over mapperne på min konto, og jeg forstår ikke, hvorfor den første gør det korrekt, og den anden ikke. hjælp til

  9.   kaike sagde han

    Hvordan kan jeg finde filer, der ender med tal? Tak