Wie holt man eine Datei aus zwei Pfaden unter Unix?

Wie holt man eine Datei aus zwei Pfaden unter Unix?

Ich versuche, eine Datei von zwei verschiedenen Pfaden abzurufen. Ich habe den folgenden Befehl verwendet. Die Ausführung scheint ordnungsgemäß zu sein, aber es gibt keine Ausgabe.

find . \( -path "/usr/local" -o -path "/user/local/archive" \) -name "xyz.csv"

Können Sie mir hierbei bitte helfen?

Antwort1

Die Gründe, warum Sie keine Ausgabe erhalten:

  • Der Punkt .ist die Wurzel Ihrer Suche. Wenn Sie sich also nicht im Stammverzeichnis befinden, haben Sie /usr/localin Ihrem Suchbaum nicht
  • Die -pathOption muss mit dem gesamten Pfad übereinstimmen, einschließlich des zu suchenden Objekts. Wenn Sie also ein angegeben haben, -namemuss dieser Name auch Teil des sein (oder am Ende -pathmit globbed )*

Nimmt aber findmehr als ein Argument als Suchpfad an, sodass Sie suchen können, wie @Kamaraj in seinem Kommentar geschrieben hat. In Ihrem Fall ist dies nicht einmal notwendig, da find auch in Unterverzeichnissen sucht und somit find /usr/local -type f -name xyz.csvauch find/usr/local/archiv/xyz.csv

verwandte Informationen