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.
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".
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
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
**
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.
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.
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
**
grep a work/*
grep nom de fichier de chaîne de recherche|grep chaîne de recherche 2
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