[LINUX] commande find / grep (mémo personnel du débutant)

Il s'agit d'une enquête sur des points que je n'ai pas compris dans la première semaine de mon arrivée dans l'entreprise. Notes personnelles.

commande de recherche

Rechercher des fichiers par nom Changer le contenu de la sortie (exécuter la commande ls)

Grammaire de base ** find [option] [chemin de recherche] [expression de recherche] **

Si vous exécutez uniquement "find", tous les fichiers du répertoire courant seront affichés. "Find / etc" montre tous les fichiers dans le répertoire "/ etc".

Spécifiez le nom du fichier que vous souhaitez rechercher

Utilisez l'option ** " -name " ** pour spécifier le nom de fichier que vous souhaitez rechercher. (Le répertoire est également recherché.)

Pour rechercher des fichiers contenant "bash" dans le nom de fichier dans ** ~ ** sur votre répertoire personnel: En ajoutant le caractère générique ** * ** avant et après bash, des fichiers tels que ●● _bash.js et .bash ●● peuvent être inclus dans la cible de recherche. Si vous ne spécifiez pas de caractère générique, vous n'avez pas besoin d'ajouter des guillemets doubles ** " **.

Lors de l'utilisation de caractères génériques

find ~ -name "*bash*"

Dans le cas d'un nom de fichier fixe sans utiliser de caractères génériques

find ~ -name .bash_profile

option

Rechercher uniquement des fichiers, pas des répertoires ** Option -type f ** Exemple) Lorsque vous souhaitez rechercher "profile.txt" dans le répertoire hoge

find /hoge -name profile.txt -type f

Si vous souhaitez rechercher dans l'annuaire ** Option -type d **

Lors du ciblage de liens symboliques Option ** -type l **

Masquer le message d'erreur "Opération non autorisée"

Quand j'ai lancé find, j'ai eu beaucoup de résultats d'exécution comme celui-ci et les résultats d'exécution sont très difficiles à comprendre. C'était la même chose quand je l'ai exécuté avec sudo find ~. find: /Users/username/Library/Caches/CloudKit/com.apple.Safari: Opération non autorisée

En effet, si vous spécifiez "/" comme emplacement de recherche, les emplacements non autorisés seront également recherchés et un grand nombre de messages d'erreur seront affichés, donc "** 2> / dev / null ** "sera utilisé comme message d'erreur. "Throw away" (rediriger vers un périphérique nul) est une bonne idée. Et cela.

Un exemple de suppression d'un message d'erreur avec ** 2> / dev / null **

find /hoge -name profile.txt -type f 2>/dev/null

Cela supprimera le message d'erreur de recherche pour les emplacements non autorisés et n'affichera que les résultats de recherche purs.

Changer le contenu de la sortie (exécuter la commande ls)

Il peut être exécuté en spécifiant "action" en plus de l'expression de recherche.

** Action -print ** (par défaut) Afficher le nom du fichier

** Action -ls ** Des informations détaillées sur le fichier s'affichent. Ces informations sont affichées comme équivalentes à la commande "ls -dils", et elles deviennent assez longues car elles incluent la taille du fichier et ainsi de suite.

Exemple)

 find ~ -name .bash_profile -type f -ls 2>/dev/null

Résultat d'exécution

12902229406        8 -rw-r--r--1 nom d'utilisateur personnel 629 24 nov 17 17:56 /Users/Nom d'utilisateur/.bash_profile

Si la quantité d'informations concerne "ls -dF", utilisez l'action "-exec" et indiquez "-exec ls -dF {};". .. Voir la source pour plus de détails.

commande grep

Extraire uniquement les parties nécessaires du résultat de l'exécution Recherche par mot Rechercher les lignes précédentes et suivantes Affichage avec numéro de ligne

Grammaire de base ** grep [facultatif] fichier de signatures de recherche ** Ou ** Commande | grep [facultatif] Modèle de recherche **

Exemple) Lors de la recherche de la lettre «a» dans tous les fichiers du répertoire «travail»
grep a work/*
Rechercher et (et) avec grep
grep nom de fichier de chaîne de recherche|grep chaîne de recherche 2

Affichage avec numéro de ligne

Si vous souhaitez afficher les résultats de la recherche de la commande grep avec des numéros de ligne, utilisez l'option ** -n option **. ** grep -n fichier texte de chaîne de recherche **

Exemple) Recherchez dans le fichier "~ / .ssh / hoge.txt" une chaîne de caractères contenant la chaîne de caractères "EA" et affichez le numéro de ligne s'il existe.

grep -n EA ~/.ssh/hoge.txt

Résultat d'exécution

2:asfasdfasdasdfasEAasdasdfasf

Recommended Posts

commande find / grep (mémo personnel du débutant)
[Mémo personnel] Mémo de commande d'environnement virtuel Python
commande grep
mémo de commande
[OpenCV] Mémo personnel
mémo de commande scp
qui commande mémo
Mémo de commande Linux # 1
mémo de commande vi (vim)
Notes de commande de base Python
Rechercher, localiser le résumé de la commande
[Mémo personnel] Achèvement automatique du bash
notes d'utilisation de la commande virtualenv Basic
Mémo de commande Linux tar xz
Mémorandum de commande Linux [pour les débutants]
[Mémo d'apprentissage] Résumé de la commande Django