Linux - jak vyhledávat příkazem find a locate soubory a adresáře?
Ahoj, potřeboval bych se naučit vyhledávat dle názvu souborů a adresářů v linuxovém terminálu. Co jsem se díval, tak se na to používá příkaz find a locate, ale nechápu jak ho používat. Jak bych mohl vyhledat třeba toto:
Jakýkoliv soubor s názvem *FILE3*.*
Přesně soubor s názvem FILE3.mkv
Jakýkoliv adresář s názvem *DIR2*
Přesně adresář s názvem DIR2
Ahoj,
zde je pár příkladů, jak použít find a locate k vyhledávání přes terminal linuxu:
# Jakýkoliv soubor s názvem *FILE3*.*
# Přesně soubor s názvem FILE3.mkv
# Jakýkoliv adresář s názvem *DIR2*
# Přesně adresář s názvem DIR2 (-name)
# Ignorovat velká a malá písmena (-iname)
# Najít soubory neobsahují řetězec string
# Soubory menší než 500MB
# Soubory větší než 7GB
# Najít dle typu souboru (f - file, d - dir, l - simlink, c - char dev, b - block dev)
# Najít a smazat soubory *.tmp
# Najít dle času
- modifikováno před 3 dny =
- přistoupeno před méně než 2 dny =
- změněna metadata před více jak 7 dny =
# Find - další možnosti jsou najít dle:
- vlastníka
- skupiny
- oprávnění
# Find - další parametry
- hloubka hledání
- následovat symlinky
- optimalizace (1, 2, 3)
Příkaz locate používá db, takže by vyhledávání mělo být rychlejší než find, ale zase toho tolík neumí
#Instalace locate
#update db pro locate
# stav db
# vyhledávání
# jen existujici soubory
Jakýkoliv soubor s názvem *FILE3*.*
Přesně soubor s názvem FILE3.mkv
Jakýkoliv adresář s názvem *DIR2*
Přesně adresář s názvem DIR2
ODPOVĚĎ
Ahoj,
zde je pár příkladů, jak použít find a locate k vyhledávání přes terminal linuxu:
Find
# Jakýkoliv soubor s názvem *FILE3*.*
find /home -name "FILE3.*"
# Přesně soubor s názvem FILE3.mkv
find /home -name "FILE3.mkv"
# Jakýkoliv adresář s názvem *DIR2*
find /home -type d -name "*DIR2*"
# Přesně adresář s názvem DIR2 (-name)
find /home -type d -name "DIR2"
# Ignorovat velká a malá písmena (-iname)
find /home -type d -iname "DIR2"
# Najít soubory neobsahují řetězec string
find /home \! -name "string"
# Soubory menší než 500MB
find /home -size -500M
# Soubory větší než 7GB
find /home -size +7G
# Najít dle typu souboru (f - file, d - dir, l - simlink, c - char dev, b - block dev)
find /home -type l
# Najít a smazat soubory *.tmp
find /tmp -name "*.tmp" -delete
# Najít dle času
- modifikováno před 3 dny =
find /home +mtime 3
- přistoupeno před méně než 2 dny =
find /home -atime -2
- změněna metadata před více jak 7 dny =
find /home -ctime +7
# Find - další možnosti jsou najít dle:
- vlastníka
-user
- skupiny
-group
- oprávnění
-perm
# Find - další parametry
- hloubka hledání
-maxdepth 4
- následovat symlinky
-L
- optimalizace (1, 2, 3)
-O3
Locate
Příkaz locate používá db, takže by vyhledávání mělo být rychlejší než find, ale zase toho tolík neumí
#Instalace locate
apt install mlocate
#update db pro locate
updatedb
# stav db
locate -S
# vyhledávání
locate FILE3
locate -b FILE3
# jen existujici soubory
locate -e FILE3
Show english version