GNU/Linux >> Znalost Linux >  >> Linux

Jak používat FIND v Linuxu

V nedávném článku na Opensource.com představil Lewis Cowles find příkaz.

find je jedním z nejvýkonnějších a flexibilnějších programů příkazového řádku v každodenní sadě nástrojů, takže se vyplatí věnovat tomu trochu více času.

Minimálně find jde cestou najít věci. Například:

find /

najde (a vytiskne) každý soubor v systému. A protože je vše soubor, získáte spoustu výstupů, které budete muset protřídit. To vám pravděpodobně nepomůže najít to, co hledáte. Argument cesty můžete změnit, abyste věci trochu zúžili, ale stále to není o nic užitečnější než použití ls příkaz. Takže musíte přemýšlet o tom, co se snažíte najít.

Možná budete chtít najít všechny soubory JPEG ve svém domovském adresáři. -name argument vám umožňuje omezit výsledky na soubory, které odpovídají danému vzoru.

find ~ -name '*jpg'

Ale počkej! Co když některé z nich mají příponu velkými písmeny? -iname je jako -name , ale nerozlišují se v něm velká a malá písmena.

find ~ -iname '*jpg'

Skvělý! Ale schéma názvu 8.3 je z roku 1985. Některé obrázky mohou mít příponu .jpeg. Naštěstí můžeme kombinovat vzory s "nebo" reprezentovaným -o .

find ~ ( -iname 'jpeg' -o -iname 'jpg' )

Jsme stále blíž. Ale co když máte nějaké adresáře, které končí na jpg? (Proč jste adresář pojmenovali bucketofjpg místo pictures je mimo mě.) Náš příkaz můžeme upravit pomocí -type argument hledat pouze soubory.

find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f

Nebo byste možná chtěli najít tyto podivně pojmenované adresáře, abyste je mohli později přejmenovat:

find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type d

Ukázalo se, že jste v poslední době hodně fotili, takže to zúžíme na soubory, které se za poslední týden změnily.

find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Časové filtry můžete provádět na základě času změny stavu souboru (ctime ), čas úpravy (mtime ), nebo čas přístupu (atime ). Ty jsou ve dnech, takže pokud chcete jemnější kontrolu, můžete ji vyjádřit v minutách (cmin , mmin a amin , respektive). Pokud přesně neznáte požadovaný čas, pravděpodobně před číslo vložíte + (více než) nebo (méně než).

Ale možná vás vaše obrázky nezajímají. Možná vám dochází místo na disku, takže chcete najít všechny ty obrovské soubory (definujme to jako „větší než 1 gigabajt“) v log adresář:

find /var/log -size +1G

Nebo možná budete chtít najít všechny soubory vlastněné bcottonem v /data :

find /data -owner bcotton

Můžete také hledat soubory na základě oprávnění. Možná chcete ve svém domovském adresáři najít všechny světově čitelné soubory, abyste se ujistili, že je nesdílíte.

find ~ -perm -o=r

Tento příspěvek pouze poškrábe povrch toho, co find může udělat. Kombinace testů s booleovskou logikou vám může poskytnout neuvěřitelnou flexibilitu při hledání přesně těch souborů, které hledáte. A s argumenty jako -exec nebo -delete , můžete find podnikněte kroky na základě toho, co... najde. Ať máte nějaké oblíbené find výrazy? Podělte se o ně v komentářích!


Linux
  1. Jak používat BusyBox na Linuxu

  2. Jak používám cron v Linuxu

  3. Jak používat Unzip v Linuxu

  1. Jak používat Su Command v Linuxu

  2. Jak najít soubor v Linuxu

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

  1. Jak používám nastavení usnadnění přístupu v systému Linux

  2. Jak používat pkgsrc na Linuxu

  3. Jak najít soubory v Linuxu