Con il terminale: esempi con il comando Trova

Ecco alcuni esempi di cui possiamo trarre vantaggio quando ne facciamo uso Trovare, un comando per cercare file o cartelle.

Per ottenere aiuto per l'esecuzione del comando:

man find

per uscire dal manuale è sufficiente premere il tasto [Q] (valido per qualsiasi manuale).

Negli esempi seguenti il ​​punto (.) Dopo find (find.) Significa che stiamo cercando nella cartella indicata dal prompt. Può essere sostituito con qualsiasi percorso valido come / home /.

Esempi:

Cerca solo i file con uno schema.
find . -type f -name "*.deb"

trova e copia in / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;

Trova i file Thumbs.db ed eliminali.
find . -type f -name "Thumbs.db" -exec rm -f {} \;

Crea un file di testo puro con i file md5 nella directory.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt

Elimina le fastidiose cartelle .svn.
find | grep "\.svn$" | xargs rm -fr

Sostituisci un testo con un altro.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php

Trova i file aggiornati fino a un giorno fa.
find /var/log/[a-z]* \*.sql -mtime +1

Per generare i file md5sums dei pacchetti DEB:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   corretto suddetto

    elimina tutti i file diversi da .txt (ovviamente .txt può essere qualsiasi cosa)
    trova. ! -name "* .txt" -exec rm {} \;

    ricerca senza corrispondenze senza distinzione tra maiuscole e minuscole:
    trova. -iname «* foobar *»

    Nota: il comando -exec non può essere eseguito con il parametro -iname.

  2.   targon suddetto

    Eccellente 😉 questo comando dovrebbe essere obbligatorio sapere, prima che mi spaventassero le opzioni che esistevano in 'man' per poter fare ricerche, ma dandogli l'opportunità ho potuto vedere quanto sia potente quando si tratta di trovare ciò che ho dimenticato sul mio disco rigido 😐

  3.   Hugo suddetto

    Find è sicuramente utile, soprattutto per gestire nomi di file che includono spazi e altri caratteri insoliti. Ad esempio, una volta ricordo che non c'era modo di comprimere un insieme di directory, finché non mi è venuto in mente di usare find con xargs (che è molto più veloce di -exec tra l'altro) e il problema è stato risolto.

    Un altro dei miei usi preferiti per il comando find è modificare in modo ricorsivo le autorizzazioni:


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

  4.   electron222 suddetto

    Interessante ^ _ ^

    1.    KZKG ^ Gaara suddetto

      Quanto è bella l'icona dei Chakra hahahahahaha 😀

      1.    sig84 suddetto

        Mageia è scomparsa 🙂

        1.    KZKG ^ Gaara suddetto

          Sì, giusto 😀
          In questo momento mi metto in funzione di questo hehehehe. Grazie 🙂

          1.    lesterzona suddetto

            E uno per la mia distribuzione ...

  5.   tiro con l'arco suddetto

    Grazie, i comandi molto utili, ho un dubbio ricordo che in Ubuntu una volta ho usato il comando Locate, è un alias di find o ...?

    1.    Hugo suddetto

      Negativo. individuare, mlocare y rallentare sono altri comandi di ricerca che a differenza di Find, utilizzano un database che deve essere periodicamente aggiornato con il comando aggiornato b.

      Entrambi i tipi di comandi hanno i loro usi. Ad esempio, di solito uso aggiornato b seguito da mlocareindividuare quando voglio davvero trovare qualcosa di veloce in una directory con molti dati che so non vengono aggiornati troppo frequentemente (ad esempio, un pacchetto in un repository), e Find quando voglio fare qualcosa di più complesso come combinare i risultati della ricerca con un altro comando, o quando semplicemente non voglio generare il database perché so che la directory in cui cercherò non contiene troppe informazioni.

      1.    tiro con l'arco suddetto

        Grazie mille Hugo, ottima spiegazione, posso solo dire quanto è potente il terminale in gnu / linux!

  6.   Sandra suddetto

    Ciao, vedo che questo è un vecchio argomento, ma spero che tu possa ancora aiutarmi.

    Sto imparando a usare la regexp da quando ho visto un documento e sto cercando le parole error o fail e i loro derivati ​​errori o fail o failure ecc. E la mia regexp è:
    : / \ (. * \ (errore | fail \). * \) /
    Quando lo eseguo, mi dice che non ci sono corrispondenze 🙁 ma a
    :/\(.*\(errore\).*\)/
    o
    : / \ (. * \ (fallire \). * \) /
    Se trovi delle corrispondenze, potresti dirmi come mi sbaglio?

    1.    KZKG ^ Gaara suddetto

      Qual è la linea completa che stai mettendo?

      Per testare e vedere se trovo la soluzione.

      D'altra parte, comunque se vuoi puoi controllare qui: https://blog.desdelinux.net/?s=expresiones+regulares

  7.   Estefani suddetto

    Per favore aiutami, voglio copiare i file che terminano con * _ZFIR0069.TXT in un altro percorso e aggiungere una data alla fine, sto eseguendo un comando:

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

    Ma il risultato è:

    {} _20160225% -> ma copia solo un file di tutti e viene rinominato in questo modo

    Quello che voglio è che copi tutti i file e abbia questo formato * _ZFIR0069_ $ date .TXT

    Saluti.

  8.   pepG suddetto

    Qual è la differenza tra find * -type de find / home / pepe -type d? Voglio elencare le directory del mio account e non capisco perché il primo lo fa correttamente e il secondo no. aiutare

  9.   Kaike suddetto

    Come posso trovare file che finiscono in numeri? Grazie