[LINUX] Befehl find / grep (persönliches Memo für Anfänger)

Dies ist eine Übersicht über Punkte, die ich in der ersten Woche nach meinem Eintritt in das Unternehmen nicht verstanden habe. Persönliche Notizen.

Befehl finden

Suchen Sie nach Dateien nach Namen Ändern Sie den Ausgabeinhalt (führen Sie den Befehl ls aus).

Grundlegende Grammatik ** find [Option] [Suchpfad] [Suchausdruck] **

Wenn Sie nur "Suchen" ausführen, werden alle Dateien im aktuellen Verzeichnis angezeigt. "Find / etc" zeigt alle Dateien im Verzeichnis "/ etc" an.

Geben Sie den Dateinamen an, nach dem Sie suchen möchten

Verwenden Sie die Option ** " -name " **, um den Dateinamen anzugeben, nach dem Sie suchen möchten. (Das Verzeichnis wird auch durchsucht.)

So suchen Sie nach Dateien, die "bash" im Dateinamen in ** ~ ** in Ihrem Home-Verzeichnis enthalten: Durch Hinzufügen des Platzhalters ** * ** vor und nach dem Bash können Dateien wie ●● _bash.js und .bash ●● in das Suchziel aufgenommen werden. Wenn Sie keinen Platzhalter angeben, müssen Sie keine doppelten Anführungszeichen ** " ** hinzufügen.

Bei Verwendung von Platzhaltern

find ~ -name "*bash*"

Bei festem Dateinamen ohne Platzhalter

find ~ -name .bash_profile

Möglichkeit

Suchen Sie nur nach Dateien, nicht nach Verzeichnissen ** -type f Option ** Beispiel) Wenn Sie "profile.txt" im hoge-Verzeichnis suchen möchten

find /hoge -name profile.txt -type f

Wenn Sie das Verzeichnis durchsuchen möchten ** -type d Option **

Beim Targeting symbolischer Links ** -Typ l ** Option

Blenden Sie die Fehlermeldung "Vorgang nicht zulässig" aus

Als ich find ausgeführt habe, habe ich viele solche Ausführungsergebnisse erhalten, und die Ausführungsergebnisse sind sehr schwer zu verstehen. Es war das gleiche, als ich es mit sudo find ~ lief. find: /Users/username/Library/Caches/CloudKit/com.apple.Safari: Operation nicht erlaubt

Dies liegt daran, dass, wenn Sie "/" als Suchort angeben, auch nicht autorisierte Orte durchsucht werden und eine große Anzahl von Fehlermeldungen angezeigt wird, sodass "** 2> / dev / null ** "als Fehlermeldung verwendet wird. Es ist eine gute Idee, es wegzuwerfen (auf ein Null-Gerät umzuleiten). Und das.

Ein Beispiel für das Verwerfen einer Fehlermeldung mit ** 2> / dev / null **

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

Dadurch wird die Suchfehlermeldung für nicht autorisierte Standorte verworfen und nur reine Suchergebnisse angezeigt.

Ändern Sie den Ausgabeinhalt (führen Sie den Befehl ls aus).

Sie kann ausgeführt werden, indem zusätzlich zum Suchausdruck "action" angegeben wird.

** -print Aktion ** (Standard) Dateinamen anzeigen

** -ls Aktion ** Detaillierte Informationen zur Datei werden angezeigt. Diese Informationen werden als äquivalent zum Befehl "ls -dils" angezeigt und werden ziemlich lang, da sie die Dateigröße usw. enthalten.

Beispiel)

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

Ausführungsergebnis

12902229406        8 -rw-r--r--1 Benutzername Mitarbeiter 629 24. November 17:56 /Users/Nutzername/.bash_profile

Wenn es sich bei der Informationsmenge um "ls -dF" handelt, verwenden Sie die Aktion "-exec" und geben Sie "-exec ls -dF {};" an. .. Einzelheiten finden Sie in der Quelle.

grep Befehl

Extrahieren Sie nur die erforderlichen Teile aus dem Ausführungsergebnis Suche nach Wort Suchen Sie die vorherigen und nächsten Zeilen Anzeige mit Zeilennummer

Grundlegende Grammatik ** grep [optional] Suchmusterdatei ** Oder ** Befehl | grep [optional] Suchmuster **

Beispiel) Bei der Suche nach dem Buchstaben "a" in allen Dateien im Verzeichnis "work"
grep a work/*
Suche und (und) mit grep
Name der Grep-Suchzeichenfolge|grep-Suchzeichenfolge 2

Anzeige mit Zeilennummer

Wenn Sie die Suchergebnisse des Befehls grep mit Zeilennummern anzeigen möchten, verwenden Sie die Option ** -n **. ** grep -n Suchzeichenfolge Textdatei **

Beispiel) Durchsuchen Sie die Datei "~ / .ssh / hoge.txt" nach einer Zeichenfolge, die die Zeichenfolge "EA" enthält, und zeigen Sie die Zeilennummer an, falls vorhanden.

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

Ausführungsergebnis

2:asfasdfasdasdfasEAasdasdfasf

Recommended Posts

Befehl find / grep (persönliches Memo für Anfänger)
[Persönliches Memo] Python-Memo für virtuelle Umgebungen
grep Befehl
Befehlsnotiz
[OpenCV] Persönliches Memo
scp befehlsnotiz
Wer befiehlt Memo
Linux # Command Memo 1
vi (vim) Befehlsnotiz
Grundlegende Python-Befehlsnotizen
Suchen, suchen Sie die Befehlsübersicht
[Persönliches Memo] Automatischer Abschluss der Bash
Verwendungshinweise für virtualenv Basic-Befehle
Linux tar xz Befehlsnotiz
Linux Command Memorandum [für Anfänger]
[Lernnotiz] Zusammenfassung des Django-Befehls