A continuació, alguns exemples que podem aprofitar quan fem ús de Cercar, Una ordre per buscar arxius o carpetes.
Per obtenir l'ajuda d'la comanda amb:
man find
per abandonar el manual n'hi ha prou amb prémer la tecla [Q] (Vàlid per a qualsevol manual).
En els exemples següents el punt (.) Després de find (find.) Vol dir que estem buscant a la carpeta que indica l'indicador. Es pot substituir per qualsevol ruta vàlida com / home /.
Exemples:
Simplement buscar arxius amb un patró.
find . -type f -name "*.deb"
buscar i copiar cap / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;
Cerca els arxius Thumbs.db i eliminar-los.
find . -type f -name "Thumbs.db" -exec rm -f {} \;
Crear un arxiu de text pur amb el md5 dels fitxers en el directori.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt
Eliminar les molestes carpetes .svn.
find | grep "\.svn$" | xargs rm -fr
Reemplaça un text per un altre.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php
Cerca els arxius actualitzats fins a un dia enrere.
find /var/log/[a-z]* \*.sql -mtime +1
Per Generar els fitxers md5sums dels paquets DEB:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums
eliminar tots els arxius que no siguin .txt (òbviament .txt pot ser qualsevol cosa)
find. ! -name «* .txt» -exec rm {} \;
cercar sense coincidències de majúscules o minúscules:
find. -iname «* foobar *»
Observació: no es pot executar la comanda -exec amb el paràmetre -iname.
Excel·lent 😉 aquesta comanda hauria de ser obligatori saber-ho, abans em feia por la opcions que existien a 'man' per poder fer cerques, però donant-li l'oportunitat vaig poder veure el potent que és a l'hora de trobar allò que oblidi en el meu disc dur 😐
Find és certament útil, especialment per a bregar amb noms d'arxius que inclouen espais i altres caràcters inusuals. Per exemple, recordo una vegada que no hi havia manera que aconseguís comprimir un conjunt de directoris, fins que es va acudir fer servir find amb xargs (que per cert és molt més ràpid que -exec), i problema resolt.
Un altre dels meus usos preferits per la comanda find és canviar permisos recursivament:
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
Interessant ^ _ ^
Què xulo es veu la icona de Chakra jajajajajaja 😀
falta el de Mageia 🙂
Sip cert 😀
Ja mateix em poso en funció d'aquest jejejeje. Thanks 🙂
I un per la meva distro ...
Gràcies, molt útils els ordres, tinc un dubte recordo que en Ubuntu alguna vegada vaig utilitzar la comanda locate ¿és algun àlies de find o ...?
Negatiu. localitzar, mlocate y slocate són altres comandaments de recerca que a diferència de trobar, Utilitzen una base de dades que necessita actualitzar-se periòdicament amb la comanda actualitzatb.
Tots dos tipus d'ordres tenen la seva utilitat. Jo per exemple sòl usar actualitzatb seguit de mlocatelocate quan realment vull buscar alguna cosa ràpid en un directori amb moltes dades que sé que no s'actualitza massa freqüentment (per exemple, un paquet en un repositori), i trobar quan vull fer alguna cosa més complex com combinar els resultats de cerca amb un altre ordre, o quan simplement no vull generar la base de dades perquè es que el directori en el qual vaig a buscar no conté massa informació.
Moltíssimes gràcies Hugo, excel·lent explicació, només puc dir Que potent és la terminal en gnu / linux!
Hola, veig que és un tema vell, però tant de bo encara puguin ajudar-me.
Estic aprenent a fer servir les regexp des vaig veure tinc un document i estic buscant les paraules error o fail i els seus derivats errors o failed o failure etc i la meva regexp és:
: / \ (. * \ (Error | fail \). * \) /
A l'executar-la em diu que no hi ha coincidències 🙁 però per
: / \ (. * \ (Error \). * \) /
o
: / \ (. * \ (Fail \). * \) /
Si troba coincidències, podrien dir-me com m'estic equivocant ??
Quina és la línia completa que estàs posant?
Per provar i veure si trobo la solució.
D'altra banda, de tota manera si vols pots revisar per aquí: https://blog.desdelinux.net/?s=expresiones+regulares
Si us plau ajudin-me, vull copiar els arxius que acabin en * _ZFIR0069.TXT a una altra ruta ii agregar a la fin una data, ho estic fent una ordre:
data = $ (date + »% I% m% d%»)
find / xcom_rep / GAFI / sortida / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / GAFI / sortida / 42 / {} _ $ data \;
Però el resultat és:
{} _20160225% -> però només copia un arxiu de tots i es canvia el nom d'aquesta manera
El que vull és que copieu els fitxers i que tingui aquest format * _ZFIR0069_ $ data .TXT
Salutacions.
Quina diferència hi ha entre find * -type di find / home / pepe -type d? vull llistar els directoris del meu compte i no entenc perquè el primer ho fa correctament i el segon no. ayudaa
com puc cercar fitxers que acabin en numeros gràcies