Oft habe ich einen Dateinamen und einen Teilpfad, zB "content / docs / file.xml".
Gibt es eine einfache Möglichkeit, nach dieser Datei zu suchen, ohne ihren Namen manuell in Teile zu schneiden, um den Verzeichnisnamen und den Dateinamen getrennt anzugeben?
Es wäre großartig, wenn ich so arbeiten würde find
, damit ich rennen könnte find content/docs/file.xml
, aber leider nicht.
linux
command-line
search
find
slhck
quelle
quelle
find -path *content/docs/file.xml
arbeitete für mich.Antworten:
Übergeben Sie einen
*
Platzhalter, um eine Übereinstimmung für etwas anzuzeigen . Sie müssen auch dem*
s entkommen , zB:oder füge das Muster in Anführungszeichen ein, zB:
Wie die Manpage es beschreibt:
quelle
find hat auch die Option -wholename
find $top_dir -wholename *string*
quelle
oder nur
quelle
Suchen Sie beispielsweise Dateien an einem Speicherort mit Sternchen / Platzhalter (
*
) als:dir=“/apps/*/instance01/"
Sie könnten find verwenden${dir} -name “*.jks”
. Platzieren Sie alle Dateien in einem Array wie folgt:Wenn Sie Dateien mit anderen Erweiterungen erhalten möchten, verwenden Sie 'oder' wie folgt:
-name "*.keystore" -o -name "*.jks" -o -name “*.p12"
da-name
nur einzelne Zeichenfolgen akzeptiert werden, verwenden Sie 'oder'.Zum Schluss ordnen Sie alles wie folgt an:
Wenn Sie vollständige Pfade haben, die nicht Teilpfade sind, ist es viel einfacher, sie in Arrays wie folgt zu platzieren:
quelle