Die meisten Dateioperationen werden mit "git grep" ausgeführt, und ich habe die Grundlagen vernachlässigt Ich beschloss, es noch einmal nachzuschlagen.
find
Wie der Name schon sagt, ist find eine Methode zum Suchen von Dateien im Verzeichnisbaum. Die Grundform ist wie folgt.
$ find (Startverzeichnis suchen)(Suchbedingung) (Aktion)
-name
$ find . -name file-1.txt -print
./file-1.txt
Suchen Sie nach Namen, wie der Name schon sagt. Wenn Sie jedoch einen Platzhalter (*?) Verwenden, müssen Sie einfache oder doppelte Anführungszeichen verwenden, da diese von der variablen Erweiterung von Bash gelesen werden.
-type
$ find . -type d -print
Wie der Name schon sagt, wird die Suchbedingung (-type) auch nach Typnamen durchsucht. Das "d" vom "Typ d" ist der Dateityp, und im obigen Fall ist es eine Anweisung, "nur das Verzeichnis von der aktuellen Position zu finden".
Es ist auch möglich, in Kombination wie unten gezeigt zu verwenden. (-a ist eine UND-Suche und kann weggelassen werden.)
$ find . -type f -a -name '*.txt' -print
Geben Sie | Dateityp an |
---|---|
-Typ f | Normale Datei |
-Typ d | Verzeichnis |
-Typ l | Symbolischer Link |
Derzeit werden alle mit "-print" angezeigt, aber wenn sie mit "-ls" angezeigt werden, werden sie im "ls" -Format angezeigt.
find . -type f -a -name '*.txt' -ls
671143 0 -rw-rw-r-- 1 vagrant vagrant 0 Apr 19 04:29 ./find/file-1.txt
671215 0 -rw-rw-r-- 1 vagrant vagrant 0 Apr 19 04:29 ./find/file-3.txt
671213 0 -rw-rw-r-- 1 vagrant vagrant 0 Apr 19 04:29 ./find/file-2.txt
locate Suchen Sie im Gegensatz zu "Suchen" in der Datenbank, in der der Dateipfad gespeichert ist, damit er schneller durchsucht werden kann als "Suchen".
Es ist von Anfang an nicht in Linux enthalten, daher müssen Sie es installieren.
$ locate --version
Wenn es nicht enthalten ist, installieren Sie es.
$ sudo yum install mlocate
$ sudo apt-get install mlocate
$ updatedb
Der obige Befehl "updatedb" erstellt eine Datenbank und die Datenbank wird in regelmäßigen Abständen aktualisiert.
Datenbankaktualisierungen werden während der Installation einmal täglich aktualisiert. Daher wird es einen Tag später sein, dass die gerade erstellte Datei bei der Suche erfasst wird. Außerdem wird die gerade gelöschte Datei bis einen Tag später bei der Suche erfasst.
`locate ist gut geeignet, um Dateien einige Zeit nach ihrer Erstellung (Löschung) zu finden. ``
$ locate bash
Dies beschleunigt alle Dateien mit dem Namen bash.
Optionen | Effekte |
---|---|
-i | Fall ignorieren |
-b | Nur Dateinamen suchen (Verzeichnis ignorieren) |
-A | und suchen (normalerweise oder suchen) |
Recommended Posts