Come posso usare il comando find in modo più efficiente?


15

Volevo sapere qual è il modo migliore per utilizzare il comando find in modo efficiente?

Di solito lo uso, il find [filename] [dir]che mi dà un lungo elenco di nomi di file, nessuno dei quali legato in alcun modo alla mia ricerca.

Devo semplicemente trovare un file in una directory particolare. Qual è il comando per quello?

Risposte:


24

di solito dici a dove iniziare la ricerca e cosa cercare. Quindi la sintassi per i percorsi da cercare e ciò che stai effettivamente cercando di trovare è diversa.

Per il caso d'uso menzionato, supponiamo che tu voglia trovare il passwdfile in /etc:

find /etc/ -name passwd

stai dicendo "a partire da etc, cerca un file il cui nome èpasswd

se non specifichi criteri (o "opzioni" in find parlance), ciò che trova è, inizia nel percorso (o nei percorsi) che specifichi e trova ricorsivamente tutti i file e le directory sottostanti. Quindi le opzioni "filtrano" quei file per restringere ciò che stai cercando.

Trova tutti i file JPG ovunque nel tuo filesystem:

find / -name "*jpg" 

Si consiglia di utilizzare le virgolette nelle opzioni perché altrimenti l'espansione della shell può causare mal di testa.

Trova qualsiasi file pdf, indipendentemente dal caso, in Documenti o Download:

find Documents/ Downloads/ -iname "*pdf"

Se lo fai man finde scorri verso il basso fino a TEST, troverai tutti i "criteri" che puoi trovare per restringere la ricerca. Puoi cercare file con nomi di file specifici, di proprietà di utenti o gruppi specifici, con un permesso di file specifico, essendo di un tipo specifico (ad es. -type dTroveranno solo directory, mentre -type ftroveranno solo file semplici, escluse le directory), file più recenti o precedenti di un numero specifico di giorni (o minuti), file vuoti, eseguibili e così via.

Nella pagina man di find troverai anche una sezione chiamata AZIONI, queste possono seguire i criteri e saranno attivate da qualsiasi file che soddisfi tutti i criteri. Quindi puoi findfare cose come eliminare i file che trova, eseguire comandi arbitrari su di essi e così via.

Ma ovviamente la sintassi di base rimane:

find [starting path(s)] [conditions or criteria]

grazie funziona alla grande. Ero davvero confuso e questo aiuta a
chiarire le

1
+1 Questa è una bella introduzione da trovare e insegna anche al PO come trovare ulteriori informazioni.
Lgarzo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.