Skip to main content

Utilitzeu el comandament Linux i Unix

Anonim

La comanda Linux i Unix trobar executa una cerca de fitxers en una jerarquia de directoris.

Sintaxi per a trobar comandament:

trobeu ruta … expressió

Descripció

Aquesta pàgina de manual documenta la versió GNU de trobar . L'ordre trobar busca l'arbre del directori arrelat a cada nom del fitxer determinat avaluant l'expressió donada d'esquerra a dreta, d'acord amb les regles de precedència (vegeu la secció sobre Operadors a continuació), fins que es conegui el resultat; en altres paraules, el costat esquerre és fals per a i operacions, cert per a o , en quin punt trobar es mou al nom del fitxer següent.

El primer argument que comença amb:

  • -
  • ( o),
  • !

es pren com a principi de l'expressió; Alguns arguments abans que siguin rutes per buscar, i qualsevol argument després que sigui la resta de l'expressió. Si no es donen cap ruta, s'utilitza el directori actual. Si no es dóna expressió, l'expressió -imprimir s'utilitza.

El trobar l'ordre surt amb l'estat 0 si tots els fitxers es processen correctament, més grans que 0 si es produeixen errors.

Expressions

L'expressió es compon d'opcions (que afecten l'operació global en lloc del processament d'un fitxer específic, i sempre tornen cert), les proves (que retornen un valor vertader o fals) i les accions (que tenen efectes secundaris i retornen un veritable o valor fals), tots separats pels operadors. L'expressió -i Se suposa que l'operador s'omet. Si l'expressió no conté cap acció que no sigui -prune , llavors -imprimir es realitza en tots els fitxers per als quals l'expressió és certa.

Opcions

Totes les opcions sempre es tornen certes. Sempre tenen efecte, en comptes de processar-se només quan s'aconsegueix el seu lloc en l'expressió. Per tant, per a la claredat, és millor posar-los al principi de l'expressió.

-daystart Temps de mesura (per a -amin, -time, -cmin, -ctime, -mmin, i -temps ) des del començament d'avui en lloc de fer-ho des de fa 24 hores.
-de profunditat Processeu els continguts de cada directori abans del directori en qüestió.
-follow Enllaços simbòlics de dret. Implica -sobretot .
-help o - ajuda Imprimiu un resum de l'ús de la línia de comandaments de trobar i sortiu.
-mesa profunditat número Descendeix com a màxim el nombre de nivells (un enter no negatiu) de directoris sota els arguments de la línia de comandaments. L'expressió -max profunditat 0 només significa aplicar les proves i les accions als arguments de la línia d'ordres.
-filtre nombre No aplique cap prova o acció a nivells inferiors al nombre (un enter no negatiu). L'expressió -filtre 1 significa processar tots els fitxers, excepte els arguments de la línia d'ordres.
-munt No baixeu directoris en altres sistemes de fitxers. Un nom alternatiu per a -xdev , per a la compatibilitat amb algunes altres versions de trobar .
-sobretot No optimitzeu assumint que els directoris contenen 2 menys subdirectoris que el seu recompte d'enllaç dur. *
-versió o --version Imprimiu el trobar número de versió i sortida.
-xdev No baixeu directoris en altres sistemes de fitxers.

* Aquesta opció és necessària quan busqueu sistemes de fitxers que no segueixin la convenció d'enllaços del directori Unix, com ara el CD-ROM o els sistemes de fitxers MS-DOS o els punts de muntatge del volum AFS. Cada directori en un sistema de fitxers Unix normal té almenys 2 enllaços durs: el seu nom i el seu. entrada (període). A més, els seus subdirectoris (si n'hi ha) tenen cadascun. entrada enllaçada a aquest directori.

Quan trobar està examinant un directori, després d'haver format dos menys subdirectoris que el recompte d'enllaç del directori, sap que la resta de les entrades al directori no són directoris ( full fitxers a l'arbre de directoris). Si només cal examinar els noms dels fitxers, no hi ha cap necessitat d'esborrar-los; això dóna un augment significatiu de la velocitat de cerca.

Proves

Els arguments numèrics es poden especificar com:

+ n Per a més de n.
-n Per menys de n.
n Per exactament n.
-amin n S'ha accedit al fitxer per última vegada n fa uns minuts.
-el nou fitxer S'ha accedit recentment al fitxer més recent que dossier s'ha modificat. -L'usuari es veu afectat per -follow només si -seguit arriba abans -un nou a la línia d'ordres.
-tema n S'ha accedit al fitxer per última vegada n * Fa 24 hores.
-cmin n L'estat del fitxer s'ha canviat per última vegada n fa uns minuts.
-cnewer file L'estat de l'arxiu es va canviar per darrer cop més recent que el fitxer modificat.- cnewer està afectat per -follow només si -follow arriba abans -Newer a la línia d'ordres.
-temporada n L'estat del fitxer s'ha canviat per última vegada n * Fa 24 hores.
-buit El fitxer està buit i és un fitxer normal o un directori.
-fals Sempre fals.
-fstype type El fitxer està en un sistema de fitxers de tipus específic. Els tipus de sistema de fitxers vàlids varien entre les diferents versions d'Unix; una llista incompleta de tipus de sistema de fitxers que s'accepten en alguna versió d'Unix o una altra és: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Podeu utilitzar -printf amb la directiva% F per veure els tipus dels vostres sistemes de fitxers.
-gid n L'ID del grup numèric del fitxer és n .
-grupo gname El fitxer pertany al grup gname (es permet l'identificador del grup numèric).
- nom patró Igual que el nom, però la coincidència és insensible a majúscules i minúscules.
-iname patró M'agrada -nom , però la coincidència és insensible a majúscules i minúscules. Per exemple, els patrons fo * i F? coincideix amb els noms dels fitxers Foo , FOO , foo , fOo , etc.
-inum n El fitxer té el número d'inode n .
-patlla patró M'agrada -Camí , però la coincidència és insensible a majúscules i minúscules.
-irgex patró Igual que -regex, però la coincidència és insensible a majúscules i minúscules.
enllaços n El fitxer té n enllaços.
-lum patró El fitxer és un enllaç simbòlic el contingut del qual coincideix amb el patró de shell. Els caràcters meta no es tracten / o . especialment.
-mmin n Les dades de l'arxiu van ser modificades per última vegada n fa uns minuts.
-temps n Les dades de l'arxiu van ser modificades per última vegada n * Fa 24 hores.
-name patró La base del nom del fitxer (la ruta d'accés amb els directoris principals eliminats) coincideix amb el patró de shell. Els metacaracteres (*, ?, i ) no coincideixen amb a . al principi del nom base. Per ignorar un directori i els fitxers que hi ha sota, utilitzeu -prune ; vegeu un exemple a la descripció de -Camí .
-newer file S'ha modificat el fitxer més recentment dossier . L'expressió -newer està afectat per -follow només si -follow arriba abans -newer a la línia d'ordres.
-nouser Cap usuari correspon a l'identificador numèric d'usuari del fitxer.
-nogrup Cap grup correspon a l'ID del grup numèric del fitxer.
-path patró El nom del fitxer coincideix amb el patró de shell patró . Els caràcters meta no es tracten / o . especialment; així, per exemple,trobar -path './sr*sc imprimirà una entrada per a un directori anomenat ./src/misc (si n'hi ha). Per ignorar tot un arbre de directoris, utilitzeu -prune en lloc de comprovar tots els fitxers a l'arbre. Per exemple, ometeu el directori src / emacs i tots els fitxers i directoris que hi ha sota, i imprimiu els noms dels altres fitxers que es troben, feu alguna cosa així:trobar -path './src/emacs' -prune-o -print
-perma mode Els bits de permisos del fitxer són exactament mode (octal o simbòlic). Els modes simbòlics utilitzen el mode 0 com a punt de partida.
-perm-mode Tots els bits de permís mode estan establerts per al fitxer.
-perm + mode Qualsevol dels bits de permís mode estan establerts per al fitxer.
-regex patró El nom del fitxer coincideix amb l'expressió regular patró . Aquesta és una coincidència en tot el camí, no una recerca. Per exemple, per coincidir amb un fitxer anomenat ./fubar3, podeu utilitzar l'expressió regular . * barra. o . * b. * 3, però no b. * r3.
mida n bckw Usos d'arxius n unitats d'espai. Les unitats són blocs de 512 bytes per defecte o si b segueix n , bytes si c segueix n , kilobytes si k segueix n , o paraules de 2 bytes si w segueix n . La mida no conté blocs indirectes, però sí compta amb blocs en fitxers dispersos que no són realment assignats.
-true Sempre cert.
tipus c El fitxer és de tipus c :
b Bloqueja (amort.) Especial
c Caràcter (sense marcar) especial
d Directori
p Canonada amb nom (FIFO)
f Fitxer regular
l Enllaç simbòlic
s Endoll
D porta (Solaris)
-Niu n L'identificador numèric d'usuari del fitxer és n .
-used n S'ha accedit al fitxer per última vegada n dies després de la seva última modificació.
-usuari uname L'arxiu és propietat de l'usuari uname (ID d'usuari numèric permès).
-xippe c El mateix que tipus tret que el fitxer sigui un enllaç simbòlic. Per a enllaços simbòlics: si -follow no s'ha donat, cert si el fitxer és un enllaç a un fitxer de tipus c ; si -follow s'ha donat, veritable si c és l. En altres paraules, per a enllaços simbòlics, -tixip comprova el tipus de fitxer que tipus no comprova.

Accions

-exec comandament ;

Executar comandament ; true si es retorna l'estat 0. Tots els següents arguments atrobar es triga a ser arguments al comandament fins que un argument que consisteix en `; ' es troba. La cadena '()' se substitueix pel nom del fitxer actual que es processa a tot arreu on es produeix en els arguments a la comanda, no només en arguments on està sol, com en algunes versions detrobar. Ambdues construccions poden haver de ser escapades (amb un ` ') o citats per protegir-los de l'expansió pel shell. La comanda s'executa al directori inicial.

-fls dossier

Cert; com -ls però escriu-ne dossier com -fprint

-print dossier

Cert; imprimiu el nom del fitxer complet al fitxer dossier . Si dossier no existeix quantrobar s'executa, es crea; si existeix, es trunca. Els noms de fitxer `` / dev / stdout '' i `` / dev / stderr '' es manegen especialment; es refereixen a la sortida estàndard i sortida d'error estàndard, respectivament.

-fprint0 dossier

Cert; com -print0 però escriu-ne dossier com -fprint

-fprintf dossier format

Cert; com -printf però escriu-ne dossier com -fprint

-D'acord comandament ;

M'agrada -exec però pregunteu a l'usuari primer (a l'entrada estàndard); si la resposta no comença amb `y 'o' Y ', no executeu l'ordre i torneu a false.

-imprimir

Cert; imprimiu el nom del fitxer complet a la sortida estàndard, seguit d'una línia nova.

-print0

Cert; imprimiu el nom del fitxer complet a la sortida estàndard, seguit d'un caràcter nul.Això permet que els noms dels fitxers que continguin línies noves siguin interpretats correctament per programes que processin latrobar sortida.

-printf format

Cert; imprimir format a la sortida estàndard, interpretant ` 'escapes i directives`%'. Els amplats i les precisions del camp es poden especificar com amb la funció `printf 'C. A diferència de -print, -printf no afegeix una línia nova al final de la cadena. Les fugides i les directrius són:

a

Campana d'alarma

b

Retrocés.

c

Deixeu d'imprimir d'aquest format immediatament i elimineu la sortida.

f

Feed de formulari.

n

Newline.

r

Retorn de carro.

t

Pestanya horitzontal.

v

Pesta vertical.

\

Una barra invertida literal (` ').

NNN

El caràcter el codi ASCII del qual és NNN (octal).

Un caràcter ` 'seguit de qualsevol altre caràcter es tracta com un caràcter normal, de manera que tots dos estan impresos.

%%

Un signe de percentatge literal.

% a

El darrer accés del fitxer al format retornat per la funció C `ctime '.

% A k

El darrer accés del fitxer en el format especificat per k , que és "@" o una directiva per a la funció C `strftime '. Els valors possibles per a k es detallen a continuació; Alguns d'ells poden no estar disponibles en tots els sistemes, a causa de les diferències en `strftime 'entre els sistemes.

@

segons des del 1 de gener de 1970, 00:00 GMT.

Camps de temps:

H

hora (00.23)

Jo

hora (01.12)

k

hora (0,23)

l

hora (1,12)

M

minut (00..59)

p

locale's AM o PM

r

hora, 12 hores (hh: mm: ss AP M)

S

segon (00..61)

T

temps, 24 hores (hh: mm: ss)

X

representació horària del local (H: M: S)

Z

zona horària (p. ex., EDT), o res si no hi ha zona horària determinable

Camps de data:

a

nom del lloc de setmana abreujat de la localitat (Sun .. Sat)

A

nom del lloc de setmana complet de la localitat, longitud variable (diumenge … dissabte)

b

nom del mes abreujat de la localitat (gener.dec)

B

nom del mes complet de la localitat, longitud variable (gener de desembre)

c

data i hora de la localització (dissabte 04 04 12:02:33 EST 1989)

d

dia del mes (01.31)

D

data (mm / dd / any)

h

igual que b

j

dia de l'any (001..366)

m

mes (01.12)

U

setmana de l'any amb el diumenge com a primer dia de la setmana (00..53)

w

dia de la setmana (0.6)

W

setmana de l'any amb el dilluns com a primer dia de la setmana (00..53)

x

representació de la data del local (mm / dd / ai)

y

dos últims dígits de l'any (00..99)

Jo

any (1970 …)

% b

Mida del fitxer en blocs de 512 bytes (arrodonits).

% c

El darrer estat del fitxer canvia el temps en el format retornat per la funció C `ctime '.

% C k

L'últim estat del fitxer canvia el temps en el format especificat per k , que és el mateix que en% A.

% d

La profunditat del fitxer a l'arbre del directori; 0 significa que el fitxer és un argument de la línia d'ordres.

% f

S'ha eliminat el nom del fitxer amb els directoris principals (només l'últim element).

% F

Tipus del sistema de fitxers el fitxer està activat; aquest valor es pot utilitzar per a -fstype.

% g

Nom del grup del fitxer o ID del grup numèric si el grup no té nom.

% G

ID del grup numèric del fitxer.

% h

Principals directoris del nom del fitxer (tot menys l'últim element).

% H

Argument de la línia de comandaments sota el qual s'ha trobat el fitxer.

% i

Número d'inode del fitxer (en decimal).

% k

Mida d'arxiu en blocs de 1K (arrodonits).

% l

Objecte de l'enllaç simbòlic (cadena buida si el fitxer no és un enllaç simbòlic).

% m

Bits de permisos del fitxer (en octal).

% n

Nombre d'enllaços durs a l'arxiu.

% p

Nom del fitxer.

% P

S'ha eliminat el nom del fitxer amb el nom de l'argument de la línia d'ordres en què es va trobar.

% s

Mida del fitxer en bytes.

% t

El darrer temps de modificació del fitxer en el format retornat per la funció C `ctime '.

% T k

El darrer temps de modificació del fitxer en el format especificat per k , que és el mateix que en% A.

% u

Nom d'usuari del fitxer o ID d'usuari numèric si l'usuari no té nom.

% U

Identificador numèric d'usuari del fitxer.

S'ha descartat un caràcter «%» seguit de qualsevol altre caràcter (però s'imprimeix l'altre caràcter).

-prune

Si no es dóna el pes, és veritat; no baixis el directori actual.Si es dóna el pes, false; cap efecte.

-ls

Cert; llista el fitxer actual en format `ls -dils 'en la sortida estàndard. Els recomptes de blocs són de blocs 1K, tret que s'estableixi la variable d'entorn POSIXLY_CORRECT, en aquest cas s'utilitzen blocs de 512 bytes.

Operadors

Ordenats per ordre de prioritat decreixent:

( expr )

Força precedència.

! expr

És cert si expr és fals.

-no expr

El mateix que ! expr .

expr1 expr2

I (implícit); expr2 no s'avalua si expr1 és fals.

expr1 -a expr2

El mateix que expr1 expr2 .

expr1 -i expr2

El mateix que expr1 expr2 .

expr1 -o expr2

O; expr2 no s'avalua si expr1 és cert.

expr1 -o expr2

El mateix que expr1 -o expr2 .

expr1 , expr2

Llista; tots dos expr1 i expr2 sempre s'avaluen. El valor de expr1 es descarta; el valor de la llista és el valor de expr2 .

Exemples

trobar / home -user joe

Trobeu tots els fitxers sota el directori / domicili propietat de l'usuari joe.

find / usr -name * stat

Cerqueu tots els fitxers sota el directori / usr que finalitzi a ".stat".

find / var / spool -mtime +60

Trobeu cada fitxer sota el directori / var / spool que s'ha modificat fa més de 60 dies.

find / tmp -name core-type f -print | xargs / bin / rm -f

Trobeu fitxers amb nomnucli central dins o a sota del directori/ tmp i suprimiu-les.Tingueu en compte que això funcionarà de manera incorrecta si hi ha fitxers que continguin línies noves, cometes o espais individuals o dobles.

find / tmp -name core-type f -print0 | xargs -0 / bin / rm -f

Trobeu fitxers amb nomnucli central dins o a sota del directori/ tmp i suprimiu-los, processant els noms dels fitxers de manera que els fitxers o noms de directoris que continguin cometes individuals o dobles, espais o línies noves siguin manejades correctament. El-nom La prova arriba abans de latipus prova per evitar haver de trucarestat (2) en cada fitxer.

trobar -type f -exec file '()' ;

Executa `fitxer 'a tots els fitxers a sota del directori actual o a sota. Tingueu en compte que els claudàtors estan tancats en marques de cometes úniques per protegir-les de la interpretació com a puntuació de la seqüència del shell. El punt i coma també està protegit per l'ús d'una barra invertida, encara que ';' podria haver estat utilitzat en aquest cas també.

find / (-perm -4000 -fprintf /root/suid.txt '% # m% u% p n' ), (-size + 100M -fprintf /root/big.txt '% -10s% p n' )

Recórrer el sistema de fitxers només una vegada, incloent-hi els fitxers setuid i els directoris/root/suid.txt i fitxers grans a/root/big.txt.

troba $ HOME-hora 0

Cerqueu fitxers al vostre directori personal que s'han modificat en les darreres vint-i-quatre hores. Aquesta comanda funciona d'aquesta manera perquè el temps transcorregut des de la data de l'última modificació de l'arxiu es divideix en 24 hores i es descarta qualsevol resta. Això vol dir que coincidir-temps

0, un fitxer haurà de tenir una modificació en el passat que fa menys de 24 hores.

trobar -perm 664

Busqueu fitxers que tinguin permís de lectura i escriptura per al seu propietari i grup, però que altres usuaris poden llegir però no escriure. Els fitxers que compleixin aquests criteris però que tinguin altres bits de permisos establerts (per exemple, si algú pot executar el fitxer) no es combinaran.

trobar -perm -664

Busqueu fitxers que tinguin permís de lectura i escriptura per al seu propietari i grup, i quins altres usuaris poden llegir, sense tenir en compte la presència de bits de permisos addicionals (per exemple, el bit executable). Això coincideix amb un fitxer que té la manera 0777, per exemple.

trobar -perm / 222

Cerqueu fitxers que algú pugui escriure (el seu propietari, el seu grup o qualsevol altra persona).

trobar -perm / 220 trobar -perm / u + w, g + w trobar -perm / u = w, g = w

Tots tres d'aquests comandaments fan el mateix, però el primer utilitza la representació octal del mode d'arxiu i els altres dos fan servir la forma simbòlica. Aquests comandaments busquen tots els fitxers que puguin escriure el seu propietari o el seu grup. Els fitxers no han de ser escrits tant pel propietari com pel grup que cal combinar; ho farà.

trobar -perma -220 trobar -perm -g + w, u + w

Ambdós comandaments fan el mateix; cerqueu fitxers que puguin escriure tant el propietari com el grup.

trobar -perm -444 -perm / 222! -perm / 111 trobar -perm -a + r -perm / a + w! -perm / a + x

Aquestes dues ordres busquen fitxers que es poden llegir per a tothom (-perm -444 o -perm -a + r), almenys teniu un bit set (-perm / 222 o -perm / a + w), però no són executables per a qualsevol (! -perm / 111 i! -perm / a + x respectivament)

Important: Utilitzar el home comandament ( % home ) per veure com s'utilitza una comanda a l'ordinador en particular.