Evo nekoliko primjera koje možemo iskoristiti kada koristimo naći, naredba za traženje datoteka ili mapa.
Da biste dobili pomoć za izvršavanje naredbe:
man find
da biste napustili priručnik, samo pritisnite tipku [Q] (vrijedi za bilo koji priručnik).
U sljedećim primjerima, točka (.) Nakon pronalaska (pronalaženja.) Znači da tražimo u mapi označenoj upitom. Može se zamijeniti bilo kojim važećim putem poput / home /.
Primjeri:
Samo potražite datoteke s uzorkom.
find . -type f -name "*.deb"
pronaći i kopirati na / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;
Pronađite datoteke Thumbs.db i izbrišite ih.
find . -type f -name "Thumbs.db" -exec rm -f {} \;
Stvorite čistu tekstualnu datoteku s datotekama md5 u direktoriju.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt
Izbrišite dosadne .svn mape.
find | grep "\.svn$" | xargs rm -fr
Zamijenite jedan tekst drugim.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php
Pronađite datoteke ažurirane do prije jedan dan.
find /var/log/[a-z]* \*.sql -mtime +1
Da biste generirali datoteke md5sums iz DEB paketa:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums
izbrišite sve datoteke osim .txt (očito .txt može biti bilo što)
pronaći. ! -ime "* .txt" -exec rm {} \;
pretraživanje bez podudaranja velikih i malih slova:
pronaći. -iname «* foobar *»
Napomena: naredba -exec ne može se pokrenuti s parametrom -iname.
Izvrsno 😉 ovu bi naredbu trebalo obavezno znati, prije nego što sam se uplašio opcija koje postoje u 'čovjeku' da bih mogao pretraživati, ali dajući joj priliku mogao sam vidjeti koliko je moćna kada je riječ o pronalaženju onoga što sam zaboravio na tvrdom disku
Find je zasigurno koristan, posebno za rješavanje naziva datoteka koji uključuju razmake i druge neobične znakove. Na primjer, sjećam se jednom da nikako nisam uspio komprimirati skup direktorija, dok mi nije palo na pamet koristiti find s xargs (što je usput puno brže od -exec) i riješiti problem.
Još jedna od mojih preferiranih upotreba naredbe find je rekurzivna promjena dozvola:
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
Zanimljivo ^ _ ^
Kako super izgleda ikona Chakra hahahahahaha 😀
Mageia je nestala 🙂
Ma da, 😀
Trenutno sam se stavio u funkciju ovog hehehehe. Hvala 🙂
I jedan za moj distro ...
Hvala, naredbe su vrlo korisne, sumnjam da se sjećam da sam u Ubuntuu jednom koristio naredbu locate, je li to alias pronalaska ili ...?
Negativan. smjestiti, mlocirati y olabaviti su druge naredbe za pretraživanje koje za razliku od naći, koriste bazu podataka koju je potrebno povremeno ažurirati naredbom ažuriranob.
Obje vrste naredbi imaju svoju upotrebu. Ja na primjer obično koristim ažuriranob slijedi mlociratilocirati kada stvarno želim pronaći nešto brzo u direktoriju s puno podataka za koje znam da se ne ažuriraju prečesto (na primjer, paket u spremištu) i naći kada želim učiniti nešto složenije poput kombiniranja rezultata pretraživanja s drugom naredbom ili kada jednostavno ne želim generirati bazu podataka jer znam da direktorij u kojem ću pretraživati ne sadrži previše informacija.
Puno ti hvala Hugo, izvrsno objašnjenje, mogu samo reći koliko je terminal moćan u gnu / linux!
Pozdrav, vidim da je to stara tema, ali nadam se da mi i dalje možete pomoći.
Učim koristiti regexp jer sam vidio dokument i tražim riječi pogreška ili neuspjeh i njihove izvedenice pogreške ili neuspjeh ili neuspjeh itd., A moj regexp je:
: / \ (. * \ (pogreška | neuspjeh \). * \) /
Kad ga izvršavam, govori mi da nema podudaranja 🙁 već da
: / \ (. * \ (pogreška \). * \) /
o
: / \ (. * \ (iznevjeriti \). * \) /
Ako pronađete podudarnosti, možete li mi reći kako griješim?
Koja je cijela linija koju stavljate?
Da testiram i vidim pronađem li rješenje.
S druge strane, ionako ako želite možete provjeriti ovdje: https://blog.desdelinux.net/?s=expresiones+regulares
Molim vas, pomozite mi, želim kopirati datoteke koje završavaju sa * _ZFIR0069.TXT na drugu stazu i, dodajući datum na kraju, radim naredbu:
datum = $ (datum + »% Y% m% d%»)
find / xcom_rep / FATF / exit / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / FATF / exit / 42 / {} _ $ date \;
Ali rezultat je:
{} _20160225% -> ali kopira samo jednu datoteku od svih i tako se preimenuje
Ono što želim je da kopira sve datoteke i ima ovaj format * _ZFIR0069_ $ date .TXT
Pozdrav.
Koja je razlika između find * -tip d i find / home / pepe-type d? Želim navesti direktorije svog računa i ne razumijem zašto prvi to radi ispravno, a drugi ne. pomoći
Kako mogu pronaći datoteke koje završavaju brojevima? Hvala