a magnifying glass searching through text

Com trobar fitxers a Linux: dominar les ordres Find i Grep

En aquest article aprendràs a trobar fitxers a Linux amb diferents eines.

El

Cerca per nom de fitxer

“Find” is one of the most popular tools to search files in Linux. When you know the file name you can search for it using command below. Replace “/home” with a folder to search through and “filename.txt” with the file name.

$ find /home -name nomfitxer.txt

Per cercar un fitxer a la carpeta actual, substituïu

$ trobar. -name Documents.zip
./Documents.zip

Quan no sabeu el nom exacte del fitxer, utilitzeu l'expressió regular per buscar una coincidència. El símbol de l'asterisc (*) coincideix amb qualsevol conjunt de caràcters després de

$ find /home -name "Documents*"
/home/eugene/Documents.zip
/home/eugene/Documents
/home/eugene/Telèfon/Documents

Cerca per data de modificació

Per cercar fitxers que s'han modificat avui, afegiu

$ find /home -mtime 0

Per exemple, busquem imatges que es van modificar fa 10 dies:

$ cerca imatges/ -mtime 10
Imatges/Captures de pantalla/Captura de pantalla del 2023-11-03 10-29-49.png

Cerca per tipus de fitxer

El

Cerca directoris: Per trobar tots els directoris dins d'una ruta especificada, utilitzeu l'opció -type d.

$ trobar /home -tipus d

Cerca fitxers normals: Per contra, per localitzar fitxers normals, utilitzeu l'opció -type f.

$ find /home -type f -name "*.txt"

Cerca d'enllaços simbòlics: Per cercar enllaços simbòlics, utilitzeu l'opció -type l.

$ find /home -type l -name "linkname"

Cerca extensions de fitxer específiques: Limiteu la cerca especificant extensions de fitxer.

$ find /home -type f -name "*.jpg"

Combinació de criteris

Podeu combinar diversos criteris per fer les vostres cerques més precises. Aquí

Cerca fitxers modificats amb una extensió específica: cerca els fitxers modificats en els darrers 7 dies amb l'extensió

$ find /var/logs -type f -name "*.log" -mtime -7

Cerca fitxers modificats entre un interval de dates: cerqueu fitxers modificats entre l'1 de novembre de 2023 i el 5 de novembre de 2023.

$ find /home -newermt 2023-11-01! -novament 2023-11-06

Addicional

Ignorant la distinció entre majúscules i minúscules: Si voleu que la cerca no distingeixi entre majúscules i minúscules, utilitzeu l'opció -iname.

$ find /home -iname "document*"

Limitació de la profunditat de cerca: Limiteu la profunditat de cerca a un nivell específic amb l'opció -maxdepth.

$ find /home -maxdepth 2 -name "*.txt"

Excloent directoris específics: Exclou determinats directoris de la cerca utilitzant -not o ! opció.

$ find /home -type f -name "*.txt" -not -path "/home/user/exclude/*"

Recordeu, dominar el

Cerca per contingut del fitxer utilitzant

Quan es tracta de trobar contingut específic dins dels fitxers, el

Cerca bàsica de contingut: Per cercar una cadena específica en un fitxer, utilitzeu la sintaxi següent

$ grep nom de fitxer "cerca_cadena".

Substituïu

Cerca en diversos fitxers: Si voleu cercar entre diversos fitxers, proporcioneu un comodí o un patró de fitxer específic

$ grep "patró" /camí/a/fitxers/*.txt

Cerca sense distinció entre majúscules i minúscules: Feu que la vostra cerca no distingeix entre majúscules i minúscules amb l'opció -i

$ grep -i nom de fitxer "patró".

Mostra números de línia: Si voleu saber els números de línia on es troba el patró, utilitzeu l'opció -n

$ grep -n nom de fitxer "patró".

Mostra només els noms dels fitxers: Per mostrar només els noms dels fitxers que contenen el patró, utilitzeu l'opció -l

$ grep -l "patró" /camí/a/fitxers/*.txt

Cerca recursivament: Si voleu cercar un patró a tots els fitxers d'un directori i els seus subdirectoris, utilitzeu l'opció -r

$ grep -r "patró" /camí/al/directori

Exclou fitxers o directoris: Exclou determinats fitxers o directoris de la cerca amb el

$ grep "patró" --exclude=*.log /camí/a/fitxers/*

Cerca paraules senceres: Utilitzeu l'opció -w per cercar paraules senceres, evitant coincidències parcials

$ grep -w nom de fitxer "paraula".

Avançat

Cerca coincidències invertides: Inverteix la coincidència per mostrar línies que no continguin el patró especificat mitjançant l'opció -v

$ grep -v nom de fitxer "patró".

Comptant partits: Si voleu saber quantes línies contenen el patró, utilitzeu l'opció -c:

$ grep -c nom de fitxer "patró".

Es mostra només el text coincident: Mostra només el text que coincideix amb el patró amb l'opció -o:

$ grep -o nom de fitxer "patró".

Cerca recursiva amb números de línia: Combina opcions per a una cerca completa, per exemple:

$ grep -r -n "patró" /camí/al/directori

Dominar el

Mètodes de cerca de fitxers alternatius

A més dels poderosos

Cerqueu fitxers mitjançant l'script Python

De vegades, un script Python personalitzat pot proporcionar més flexibilitat en la cerca de fitxers. Aquí os i fnmatch mòduls:

importar os
des de fnmatch importar fnmatch

def trobar_fitxers(directori, patró):
    per root, dirs, fitxers en os.walk(directori):
        per fitxer en fitxers:
            si fnmatch(fitxer, patró):
                imprimir(os.path.join(arrel, fitxer))

# Usage
trobar_fitxers('/camí/a/cerca', '*.txt')

Aquest script recorre el directori i els seus subdirectoris, fent coincidir els fitxers segons el patró especificat. Personalitza el trobar_fitxers funció que s'adapti als vostres criteris de cerca específics.

El

Ellocalitzar” command is another efficient way to find files on a Linux system. It uses a pre-built index, making searches faster compared to the “find” command. However, keep in mind that the index needs regular updates to include recent changes.

Actualitzeu la base de dades de localització:

$ sudo actualitzatb

Cerca fitxers:

$ localitza filename.txt

Utilitzant el

Si tu

Trobeu una ubicació executable:

$ quin nom_executable

Utilitzant

El

Instal·leu fd:

$ sudo apt-get install fd-find # For Ubuntu/Debian
$ sudo dnf install fd # For Fedora

Cerca fitxers:

$ fdfind Documents
Telèfon/Documents
Documents
Documents.zip

Scripts personalitzats i àlies

Finalment, podeu crear scripts d'intèrpret d'ordres personalitzats o àlies per agilitzar el vostre procés de cerca de fitxers. Per exemple:

# Custom Alias
alias findtxt='find /path/to/search -name "*.txt"'

# Usage
$ findtxt

Els scripts i els àlies personalitzats us permeten crear dreceres per a les vostres necessitats específiques de cerca de fitxers, millorant el vostre flux de treball.

Trobeu fitxers a Linux mitjançant l'script Bash

Crear i utilitzar un script bash ajuda a automatitzar les tasques repetitives de cerca de fitxers a Linux. A continuació es mostra un exemple d'un script Bash senzill que cerca fitxers segons un patró proporcionat:

#!/bin/bash

# Bash script to find files based on a pattern

if [ $# -ne 2 ]; then
echo "Usage: $0 <directory> <pattern>"
exit 1
fi

directory=$1
pattern=$2

# Check if the directory exists
if [ ! -d "$directory" ]; then
echo "Error: Directory $directory not found."
exit 1
fi

# Use find command to search for files
find "$directory" -name "$pattern" -print

Deseu aquest script en un fitxer, per exemple, find_files.sh, i feu-lo executable amb l'ordre següent:

$ chmod x find_files.sh

Ara, podeu utilitzar l'script per cercar fitxers proporcionant el directori i el patró com a arguments:

$ ./find_files.sh /path/to/search "*.txt"

Aquest script comprova si es proporciona el nombre correcte d'arguments i si existeix el directori especificat. A continuació, utilitza l'ordre find per cercar fitxers segons el patró donat.

Bonificació: com cercar imatges a Linux

A Linux, hi ha diverses eines i mètodes per a la cerca d'imatges, cadascun oferint característiques i capacitats úniques. Aquí hi ha algunes opcions:

“find” Command with File Type Filtering:

L'estàndard

$ find /path/to/images -type f -name "*.jpg"

El

El

$ sudo apt-get install fd-find # For Ubuntu/Debian
$ sudo dnf install fd # For Fedora

Cerca imatges amb una extensió específica:

$ fdfind -e jpg

El

El

$ localitza '*.jpg'

Recordeu actualitzar la base de dades de localització regularment per als canvis recents:

$ sudo actualitzatb

“grep” Command for Specific Image Names:

Si teniu una convenció de nom específica per als fitxers d'imatge, podeu utilitzar el

$ grep -r 'patró' /camí/a/imatges

Substituïu

“file” Command

El

$ fitxer /camí/a/imatges/*

Busqueu línies que incloguin

“feh” Image Viewer with Filelist

Si teniu una llista de fitxers d'imatge i voleu veure'ls, el

$ feh -f $(trobar /camí/a/imatges -tipus f -nom "*.jpg")

Això obre un visor d'imatges amb una llista de fitxers de tots els fitxers JPEG del directori especificat.

Ús de les eines de metadades d'imatge

Si les vostres imatges tenen metadades, podeu utilitzar eines com ara

$ exiftool -nom_fitxer -r /camí/a/imatges | grep 'terme_cerca'

Gestors de fitxers gràfics

Els gestors de fitxers gràfics com Nautilus, Dolphin o Thunar sovint ofereixen funcionalitats de cerca. Podeu navegar al directori i utilitzar la barra de cerca.

Organitzadors d'imatges basats en etiquetes

Eines com

Resum

En conclusió, dominar la cerca de fitxers a Linux implica comprendre i combinar diverses ordres, eines i tècniques de scripting. Tant si tu