Tu je niekoľko príkladov, ktoré môžeme pri používaní využiť nájsť, príkaz na vyhľadanie súborov alebo priečinkov.
Ak chcete získať pomoc so spustením príkazu, postupujte takto:
man find
na ukončenie manuálu stačí stlačiť kláves [Q] (platí pre akýkoľvek návod).
V nasledujúcich príkladoch bodka (.) After find (find.) Znamená, že hľadáme v priečinku označenom výzvou. Môže byť nahradený ľubovoľnou platnou cestou ako / home /.
Príklady:
Stačí vyhľadať súbory so vzorom.
find . -type f -name "*.deb"
vyhľadať a skopírovať do / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;
Nájdite súbory Thumbs.db a odstráňte ich.
find . -type f -name "Thumbs.db" -exec rm -f {} \;
Vytvorte čistý textový súbor so súbormi md5 v adresári.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt
Odstráňte nepríjemné priečinky .svn.
find | grep "\.svn$" | xargs rm -fr
Jeden text nahraďte iným.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php
Nájdite súbory aktualizované až pred dňom.
find /var/log/[a-z]* \*.sql -mtime +1
Generovanie súborov md5sums balíkov DEB:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums
odstrániť všetky súbory okrem .txt (.txt môže byť čokoľvek)
Nájsť. ! -name "* .txt" -exec rm {} \;
vyhľadávať bez zhôd s malými a veľkými písmenami:
Nájsť. -iname «* foobar *»
Poznámka: Príkaz -exec nemožno spustiť s parametrom -iname.
Vynikajúce 😉 tento príkaz by mal byť povinný vedieť, skôr ako som sa zľakol možností, ktoré existovali v „človeku“, aby som mohol vyhľadávať, ale keď som mu dal príležitosť, videl som, aký silný je, pokiaľ ide o hľadanie toho, čo som zabudol na mojom pevnom disku 😐
Vyhľadanie je určite užitočné, najmä pri práci s názvami súborov, ktoré obsahujú medzery a iné neobvyklé znaky. Napríklad si raz pamätám, že neexistoval spôsob, ako by som dokázal komprimovať množinu adresárov, kým mi nenapadlo použiť find s xargs (ktorý je mimochodom oveľa rýchlejší ako -exec) a problém bol vyriešený.
Ďalším z mojich preferovaných použití príkazu find je rekurzívna zmena povolení:
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
Zaujímavé ^ _ ^
Ako cool vyzerá ikona Čakra hahahahahaha 😀
Mageia chýba 🙂
Áno, správne 😀
Práve teraz vychádzam z tohto hehehehe. Dakujem 🙂
A jeden pre moju distribúciu ...
Vďaka, príkazy veľmi užitočné, pochybujem, že si pamätám, že v Ubuntu som kedysi použil príkaz locate, je to nejaký alias nálezu alebo ...
Negatívny. lokalizovať, premiestniť y štrbina sú ďalšie vyhľadávacie príkazy, ktoré sa na rozdiel od nájsť, používajú databázu, ktorú je potrebné pravidelne aktualizovať príkazom aktualizovanéb.
Oba typy príkazov majú svoje použitie. Ja napríklad zvyčajne používam aktualizovanéb nasleduje premiestniťvyhľadať, keď naozaj chcem nájsť niečo rýchle v adresári s množstvom údajov, o ktorých viem, že sa neaktualizujú príliš často (napríklad balík v úložisku), a nájsť keď chcem urobiť niečo zložitejšie ako spojiť výsledky vyhľadávania s iným príkazom, alebo keď jednoducho nechcem generovať databázu, pretože viem, že adresár, v ktorom budem hľadať, neobsahuje príliš veľa informácií.
Ďakujem pekne Hugo, vynikajúce vysvetlenie, môžem iba povedať, aký silný je terminál v gnu / linux!
Ahoj, vidím, že toto je stará téma, ale dúfam, že mi ešte môžeš pomôcť.
Učím sa používať regulárny výraz, pretože som videl dokument a hľadám slová chyba alebo zlyhanie a ich deriváty chyby alebo zlyhanie alebo zlyhanie atď. A môj regexp je:
: / \ (. * \ (chyba | zlyhať \). * \) /
Pri jeho vykonávaní mi hovorí, že neexistujú žiadne zhody 🙁, ale to
:/\(.*\(chyba\).*\)/
o
: / \ (. * \ (zlyhať \). * \) /
Ak nájdete zápalky, mohli by ste mi povedať, ako sa mýlim?
Aká je plná čiara, ktorú vkladáte?
Vyskúšať a zistiť, či nájdem riešenie.
Na druhej strane, ak chcete, môžete skontrolovať tu: https://blog.desdelinux.net/?s=expresiones+regulares
Pomôžte mi, chcem skopírovať súbory končiace na * _ZFIR0069.TXT na inú cestu a na koniec pridať dátum, robím príkaz:
dátum = $ (dátum + »% Y% m% d%»)
find / xcom_rep / FATF / exit / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / FATF / exit / 42 / {} _ $ date \;
Ale výsledok je:
{} _20160225% -> ale skopíruje iba jeden súbor zo všetkých a takto sa premenuje
Chcem, aby skopíroval všetky súbory a mal tento formát * _ZFIR0069_ $ date .TXT
Zdravím.
Aký je rozdiel medzi find * -type d a find / home / pepe -type d? Chcem uviesť zoznam adresárov môjho účtu a nerozumiem tomu, prečo to prvý robí správne a druhý nie. pomôcť
Ako nájdem súbory, ktoré sa končia číslami? Ďakujem