GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Suchen Sie nach Dateien, deren Pfadnamen mehrere Wörter ohne bestimmte Reihenfolge zwischen ihnen enthalten?

Ich möchte nach allen Dateien suchen, deren Pfadnamen mehrere Wörter enthalten (word1 , word2 ), ohne eine bestimmte Reihenfolge zwischen ihnen.
Beispiele für übereinstimmende Dateien sind:

word1bar/fooword2/myfile
fooword2/word1bar/myfile
fooword2/bar/word1myfile

Welcher Befehl kann die Aufgabe lösen?

Ich vermute, dass ein Befehl wie dieser funktionieren wird:

find . -regex regexpattern

Danke.

Meine Lösung mit locate Verbessern Sie die Suche nach Dateien anhand von Pfadnamen mit der Locate- und Grep-Pipeline

Akzeptierte Antwort:

Mit einem einzelnen Muster (Regex oder Shell) ist das schwierig, aber seit find mehrere Bedingungen annehmen kann, können wir verwenden

find . -type f -path "*word1*" -path "*word2*" ...

In Regex müssten Sie alle verschiedenen Permutationen der Wörter angeben, wie .*word1.*word2.*|.*word2.*word1.* (nur ERE oder Perl RE), und das explodiert schnell, wenn Sie mehr als zwei Wörter finden möchten.


Linux
  1. Wie suche ich nach Dateien nach Größe und Erweiterung?

  2. Grep für mehrere Zeichenfolgen in Dateien und dann die Dateien in der Reihenfolge ihrer Größe auflisten?

  3. Wie verwende ich die GUI, um in Gnome nach Dateien zu suchen?

  4. Verwenden Sie Find and Locate, um unter Linux nach Dateien zu suchen

  5. So suchen Sie nach Dateien mit Regex im Linux-Shell-Skript

So finden Sie Dateien in Linux mit dem Find-Befehl

So suchen Sie nach Dateien über die Linux-Befehlszeile

So finden Sie Dateien, die eine bestimmte Textzeichenfolge in Linux enthalten

Finden Sie Dateien, die zwischen einem Datumsbereich erstellt wurden

So finden Sie Dateien, die eine bestimmte Suchzeichenfolge nicht enthalten

Finden Sie die Schnittstelle für die Route zu einem bestimmten Host