GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak najít soubory na příkazovém řádku Ubuntu

Typickým problémem při práci s počítači je, že nemůžete někde najít soubory, které jste si uložili. Mnoho programů GUI umožňuje vyhledávat soubory při práci pod Linuxem, nezávisle na distribuci. V některých situacích však budete mít přístup pouze k terminálu příkazového řádku, zejména pokud spravujete servery nebo k přístupu do systému používáte SSH. Pokud své soubory nemůžete najít, musíte je vyhledat pomocí programů příkazového řádku v systému Linux.

Tento tutoriál vám ukáže, jak používat Terminál, což je program příkazového řádku v OS Ubuntu, k vyhledání souborů. V shellu existují tři známé způsoby vyhledávání souborů:

  1. Vyhledejte soubory pomocí Najít příkaz
  2. Pomocí Vyhledat příkaz k vyhledání souborů
  3. Pomocí Grep příkaz pro vyhledávání v souborech

Příkazy Find a Locate se používají k vyhledávání souborů v systému, zatímco grep se používá k vyhledávání souborů podle textu, který obsahuje. Najít je pomalejší metoda, ale obsahuje několik podmínek hledání, zatímco Locate nezahrnuje tolik podmínek, ale je mnohem rychlejší než hledání.

Začněme s postupem. Budeme používat Ubuntu 20.04 LTS pro popis postupu uvedeného v tomto článku.

Metoda 1:Použití příkazu Najít

Najít je vysoce flexibilní příkaz používaný k vyhledávání souborů na základě různých podmínek. Je to velmi užitečný nástroj při hledání souboru, u kterého si nepamatujete název souboru. Pomocí příkazu Najít můžete vyhledávat podle názvu souboru a složky, data vytvoření, data změny a oprávnění. Tyto podmínky můžete kombinovat v jednom příkazu Najít. Je to velmi výkonný, ale pomalejší vyhledávací nástroj.

Obecná syntaxe příkazu je:

$ find /path/to/file/ -iname filename

Vyhledat soubory v konkrétním adresáři

Pomocí příkazu Najít můžete vyhledat všechny soubory v určitém adresáři. Obecná syntaxe by byla:

$ find /path/to/file/

Chcete-li například najít všechny soubory pod /home/tin/Downloads/ adresáře, spusťte Terminál stisknutím Ctrl+Alt+T a potom spusťte následující příkaz v Terminálu:

$ find /home/tin/Downloads/

Vyhledat soubory v aktuálním adresáři

Chcete-li vyhledat soubory v aktuálním adresáři, použijte

$ find .

Chcete-li vyhledat soubor s názvem např. „softwares“ v aktuálním adresáři, použijte následující příkaz v Terminálu:

$ find . -iname Softwares

Vyhledávání pomocí zástupného znaku

K vyhledání souborů, které odpovídají dotazu, můžete také použít zástupné znaky. Obecná syntaxe by byla:

$ find /path/to/file/ -iname filename*

Chcete-li například vyhledat soubory, které začínají slovem „cent“, spusťte v Terminálu následující příkaz:

$ find /home/tin/ -iname cent*

Vyhledat prázdné soubory

Prázdné soubory můžete také hledat pomocí příkazu Najít. Obecná syntaxe by byla:

$ find /path/to/file/ -iname -empty

Například najít prázdné soubory pod /home/tin adresáře, spusťte v Terminálu následující příkaz:

$ find /home/tin/ -empty

Vyhledávání podle data a času

Pomocí příkazu Najít můžete také vyhledávat soubory v závislosti na tom, kdy byly zpřístupněny nebo upraveny. Existují typy času, který můžete použít k prohledávání souborů:

  • mtime (čas změny) :když byl obsah souboru naposledy upraven.
  • atime (čas přístupu) :kdy byl soubor naposledy otevřen.
  • ctime (změnit čas) :když byly naposledy změněny atributy souboru.

Chcete-li například vyhledat soubory v aktuálním adresáři, které byly změněny před méně než 2 dny, spusťte v Terminálu následující příkaz:

$ find . -mtime -2

Chcete-li vyhledat soubory, ke kterým se přistupovalo před méně než 2 dny, spusťte v Terminálu následující příkaz:

$ find . –atime -2

Chcete-li vyhledat soubory, které byly změněny před méně než 2 dny, spusťte v Terminálu následující příkaz:

$ find . –ctime -2

Vyhledávání podle velikosti souboru

Chcete-li například vyhledat soubor, jehož velikost je větší než 5 MB, můžeme v Terminálu použít následující příkaz:

$ find . –size +5M\

Vyhledávání na základě oprávnění k souboru

Používá se k vyhledání souborů se specifickým oprávněním. Obecná syntaxe by byla:

$ find /path/to/file/ -type -perm mode

Kde:

Typ parametr obsahuje d nebo f hodnoty, které se používají k určení typu souboru. d pro adresáře a f pouze pro soubory.
režim může být buď s číselným oprávněním (např. 777, 655.. atd.) nebo symbolickým oprávněním (např. u=x, a=r+x).

Chcete-li například vyhledat soubor s oprávněním 644, můžeme v Terminálu použít následující příkaz:

$ find . –type f –perm 644

Metoda 2:Použití příkazu Locate

Existuje další příkaz Locate, který lze použít k vyhledávání souborů v Linuxu. Nemá tolik vyhledávacích podmínek jako nástroj Najít, ale je mnohem lepší a rychlejší než nástroj Najít. Důvodem je proces na pozadí, který skutečně běží ve vašem systému a vyhledává a ukládá nové soubory do své vlastní databáze. Na rozdíl od příkazu Najít nehledá na vašem místním pevném disku soubory a adresáře, ale místo toho je prohledává ve své vlastní databázi. Jeho databáze by měla být pravidelně aktualizována, aby vyhledávací nástroj fungoval.

Instalace Locate

Locate není ve výchozím nastavení v OS Linux nainstalováno. Budete jej muset nainstalovat ručně. Stiskněte Ctrl+Alt+T spusťte Terminál a poté zadejte následující příkaz jako sudo pro instalaci nástroje Locate:

$ sudo apt-get install locate

Po dokončení instalace můžete ihned použít nástroj Locate.

Obecná syntaxe příkazu je:

$ locate –i filename

Kde -i se používá k ignorování rozlišení velkých a malých písmen.

Vyhledávání souboru

Chcete-li například vyhledat název souboru „centos“, použijte v Terminálu následující příkaz:

$ locate –i centos

Vyhledá všechny soubory, které ve svých názvech obsahují řetězec „centos“.

Vyhledat více souborů

Můžete také hledat více názvů souborů současně. Například pomocí následujícího příkazu v Terminálu vyhledejte dva soubory „sdn.txt“ a „centos“ :

$ locate –i sdn.txt centos

Vyhledávání pomocí zástupných znaků

K vyhledání souborů, které odpovídají dotazu, můžete také použít zástupný znak. Chcete-li například vyhledat všechny soubory, které končí příponou „.iso“, použijte v Terminálu následující příkaz:

$ locate –i *.iso

Aktualizovat databázi umístění

Příkaz Locate spoléhá na to, že funguje jeho databáze, takže je třeba jej pravidelně aktualizovat. Spuštěním následujícího příkazu v Terminálu aktualizujte databázi nástroje Locate:

$ sudo updatedb

Metoda 3:Použití příkazu Grep

Ačkoli Grep není pro přímé vyhledávání souborů ve vašem systému, místo toho se používá k vyhledávání textu. Můžete jej však použít k zobrazení názvů souborů, které obsahují konkrétní řetězec znaků, který odpovídá vašemu vyhledávacímu dotazu. Chcete-li vyhledat řetězec, musíte jej uzavřít do dvojitých uvozovek.

Obecná syntaxe příkazu je:

$ grep [možnosti] [vzor] [/cesta/k/souboru]
kde [možnosti] obsahuje obecné možnosti pro ovládání vyhledávání a [vzor] obsahuje řetězec, který chceme hledat.

Pokud hledáte soubor obsahující slovo, o kterém se domníváte, že by se mohlo nacházet ve vašem konkrétním adresáři, můžete jej vyhledat pomocí výše uvedené syntaxe příkazu v Terminálu.

Chcete-li například vyhledat soubor, který obsahuje slovo „tintin“, a domníváme se, že tento soubor může být v našich Staženích složku, můžeme použít následující příkaz k nalezení tohoto souboru.

$ grep -r –i “tintin” /home/tin/Downloads

Kde

-i se používá k ignorování rozlišení velkých a malých písmen

–r se používá k rekurzivnímu hledání zadaného adresáře

Hledat více slov

Můžete také hledat více řetězců současně. Musíte použít zpětné lomítko "\" a znak "|" znaky mezi vašimi řetězci.

Například k vyhledání dvou řetězců „tintin“ a „ping“ můžeme v Terminálu použít následující příkaz:

$ grep –r –I “tintin\|ping” /home/tin/Downloads

To byl tedy stručný přehled toho, jak můžete vyhledávat soubory pomocí příkazového řádku v Ubuntu. V tomto článku jsme viděli tři užitečné metody příkazového řádku pro vyhledávání souborů. Můžete si vybrat kteroukoli z těchto metod v závislosti na rychlosti a podmínkách vyhledávání.


Ubuntu
  1. Hledání souborů v příkazovém řádku (jak na to)

  2. Jak nainstalovat aktualizace zabezpečení z příkazového řádku v Ubuntu

  3. Jak najít soubory v CentOS 8 na příkazovém řádku

  1. Jak zálohovat telefon Ubuntu?

  2. Jak používat Linuxový příkaz find k hledání souborů

  3. Jak najdu ID procesu v Ubuntu?

  1. Jak stáhnout soubor na Ubuntu pomocí příkazového řádku

  2. Jak zjistit počet jader v Ubuntu

  3. Jak odstraním soubory z koše na Ubuntu?