Linux-Suchordner in Unterordnern


19

Ich versuche, ein Verzeichnis zu finden, das 480debugerrorunter untergeordneten Verzeichnissen verschachtelt ist. Ich kenne den genauen Pfad nicht, oder auch wenn ich die genaue Schreibweise des Verzeichnisses habe, das ich finden möchte.

Gibt es einen Linux-Befehl, um Verzeichnisse mit einem bestimmten Präfix oder Suffix zu finden, zum Beispiel Verzeichnisse mit dem Namen "debug" oder "debug error", mit einem unbekannten Präfix oder Suffix?


2
Sie können versuchen locate(findet Dateien) oder find(findet Dateien).
Miku

find -type f -name * ummy ... aber nicht bekommen

3
Du brauchst -type d . fsucht nach Dateien
thkala

Antworten:


16

find ist was Sie brauchen:

$ find -type d -name '*debugerror*'

oder

$ find -type d -name '480debugerror'

wenn Sie sich über den Ordnernamen sicher sind.



1
locate -i "480debugerror"

überprüft eine Datenbank, in der alle auf Ihrem PC indizierten Dateien aufgelistet sind. Ich habe oft solche Szenarien und suche daher wie folgt:

locate -i "debug" | grep -i "log"

Damit werden alle Dateien gefunden, die in ihrem Pfad enthalten sind (unabhängig von Groß- und Kleinschreibung [das bedeutet -i] | grep).

Der Vorteil der Verwendung von locate over find besteht darin, dass locate eine viel schnellere Ausgabe erzeugt (da nur eine Datenbank überprüft wird). Wenn die Datei / der Ordner jedoch nicht indiziert ist, wird nichts gefunden. (um die Datenbank zu aktualisieren, die Sie verwenden können sudo updatedb)


Nur wenn Sie slocateinstalliert haben. Einige Produktionsumgebung nicht :-(
Zsolt Botykai

Stimmt, aber wenn eine Option, würde ich sagen, es ist besser zu finden ...

1

In Bash,

shopt -s nullglob globstar
echo **/*480*/
echo **/*debug*/
echo **/*error*/

sucht rekursiv nach Verzeichnissen mit Namen, die 480, Debug oder Fehler enthalten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.