Zde je několik příkladů, které můžeme při použití využít Najít, příkaz k vyhledávání souborů nebo složek.
Získání nápovědy pro spuštění příkazu:
man find
k opuštění manuálu stačí stisknout klávesu [q] (platí pro jakoukoli příručku).
V následujících příkladech tečka (.) After find (find.) Znamená, že se díváme do složky označené výzvou. Může být nahrazen jakoukoli platnou cestou jako / home /.
Příklady:
Stačí hledat soubory se vzorem.
find . -type f -name "*.deb"
najít a zkopírovat do / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;
Najděte soubory Thumbs.db a odstraňte je.
find . -type f -name "Thumbs.db" -exec rm -f {} \;
Vytvořte soubor čistého textu se soubory md5 v adresáři.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt
Odstraňte nepříjemné složky .svn.
find | grep "\.svn$" | xargs rm -fr
Nahraďte jeden text jiným.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php
Najděte soubory aktualizované až před dnem.
find /var/log/[a-z]* \*.sql -mtime +1
Generování souborů md5sums balíků DEB:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums
smazat všechny soubory kromě .txt (samozřejmě .txt může být cokoli)
nalézt. ! -name "* .txt" -exec rm {} \;
hledat bez shody bez rozlišování velkých a malých písmen:
nalézt. -iname «* foobar *»
Poznámka: Příkaz -exec nelze spustit s parametrem -iname.
Vynikající 😉 tento příkaz by měl být povinný vědět, než jsem se bál možností, které existovaly v ‚člověku ', abych mohl hledat, ale když jsem mu dal příležitost, viděl jsem, jak mocný je, když přijde na to, co jsem zapomněl na mém pevném disku 😐
Najít je určitě užitečné, zejména při práci se jmény souborů, které obsahují mezery a jiné neobvyklé znaky. Například si jednou pamatuji, že jsem nemohl komprimovat sadu adresářů, dokud mě nenapadlo použít find s xargs (což je mimochodem mnohem rychlejší než -exec) a problém vyřešen.
Dalším z mých preferovaných použití příkazu find je rekurzivní změna oprávnění:
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
Zajímavé ^ _ ^
Jak cool vypadá ikona čakry hahahahahaha 😀
Mageia chybí 🙂
Ano, 😀
Právě teď jsem založen na tomto lol Díky 🙂
A jeden pro mé distro ...
Díky, příkazy jsou velmi užitečné, pochybuji, že si pamatuji, že v Ubuntu jsem kdysi použil příkaz locate, je to nějaký alias find nebo ...?
Negativní vyhledat, přemístit y lokalizovat jsou další vyhledávací příkazy, které se na rozdíl od nalézt, používají databázi, kterou je třeba pravidelně aktualizovat pomocí příkazu aktualizovánob.
Oba typy příkazů mají své použití. Já například obvykle používám aktualizovánob následuje přemístitnajděte, když opravdu chci najít něco rychlého v adresáři se spoustou dat, o kterých vím, že se příliš často neaktualizují (například balíček v úložišti), a nalézt když chci udělat něco složitějšího, jako je kombinace výsledků hledání s jiným příkazem, nebo když prostě nechci generovat databázi, protože vím, že adresář, ve kterém budu hledat, neobsahuje příliš mnoho informací.
Velice vám děkuji, Hugo, vynikající vysvětlení, mohu jen říci, jak silný je terminál v gnu / linux!
Ahoj, vidím, že toto je staré téma, ale doufejme, že mi stále můžeš pomoci.
Učím se používat regexp, protože jsem viděl dokument a hledám slova chyba nebo selhání a chyby jeho derivátů nebo selhání nebo selhání atd. A můj regexp je:
: / \ (. * \ (chyba | selhání \). * \) /
Při jeho provádění mi říká, že neexistují žádné shody, ale
:/\(.*\(chyba\).*\)/
o
: / \ (. * \ (selhání \). * \) /
Pokud najdete zápalky, můžete mi říct, jak se mýlím?
Jaký je plný řádek, který vkládáte?
Vyzkoušet a zjistit, jestli najdu řešení.
Na druhou stranu, pokud chcete, můžete zkontrolovat zde: https://blog.desdelinux.net/?s=expresiones+regulares
Prosím, pomozte mi, chci zkopírovat soubory končící na * _ZFIR0069.TXT na jinou cestu a přidat datum na konec, dělám příkaz:
datum = $ (datum + »% Y% m% d%»)
find / xcom_rep / FATF / exit / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / FATF / exit / 42 / {} _ $ date \;
Ale výsledek je:
{} _20160225% -> ale kopíruje pouze jeden soubor ze všech a je takto přejmenován
Chci, aby zkopírovalo všechny soubory a mělo tento formát * _ZFIR0069_ $ date .TXT
Zdravím.
Jaký je rozdíl mezi find * -type d a find / home / pepe -type d? Chci vypsat adresáře mého účtu a nechápu, proč to první dělá správně a druhý ne. pomoci
Jak najdu soubory, které končí čísly? Díky