Dies ist wahrscheinlich eine einfache, aber ich kann es nicht herausfinden und es ist so gut wie nicht durchsuchbar. In einer Ordnerhierarchie habe ich genau eine Datei vom Typ xyz. Ich möchte diese Datei finden und mit einem Terminalbefehl öffnen.
find . -name *.xyz
Dadurch wird die gesuchte Datei zurückgegeben. Wie öffne ich es jetzt automatisch, ohne den Namen einzugeben?
find . -name *xyz | open
Das funktioniert nicht. Es heißt, der Befehl open wurde nicht gefunden.
Antworten:
@retracile ist korrekt. Sie müssen es mit "etwas" öffnen. Ich bevorzuge jedoch die Verwendung von exec gegenüber xargs.
find . -name '*.xyz' -exec cat {} \;
Dies wird zurückgeben
cat fileFound.xyz; cat fileFound2.xyx;
usw. Sie erwarten jedoch nur eine Datei zu finden.Beachten Sie, dass ein Wechsel
\;
zu+
zucat fileFound.xyz fileFound2.xyz
je nach Fall zurückkehren würde, je später möglicherweise die bevorzugte Wahl.Für mehr dazu möchte ich Sie auf diese Frage hinweisen
quelle
Der gesuchte Befehl wird aufgerufen
xdg-open
Versuchen Sie Ihren Befehl damit:
quelle
Sie müssen wissen, mit welchem Programm Sie die Datei öffnen möchten. Wenn es sich um ein Bild handelt, können Sie gwenview oder etwas anderes verwenden.
Die Eingabe und Umwandlung in Argumente erfolgt mit xargs. Und du wirst dieser Wildcard entkommen wollen ...
Und um Leerzeichen in Dateinamen zu behandeln ....
quelle
Wie andere bereits betont haben, ist Ihre Frage nicht spezifisch genug, um sie klar zu beantworten. Erraten Sie also eine andere mögliche Bedeutung: Wenn Sie meinen, dass Sie es als ausführbare Datei ausführen möchten (was bedeutet, dass Ihr Programm eine ausführbare Datei ist), teilen Sie der Shell mit, dass Sie die Ausgabe des Befehls find als Teil der Befehlszeile ersetzen möchten ::
quelle
Wenn Sie alle Dateien, die von
find
in separaten Registerkarten gefunden wurden, in einer einzigen Instanz von vim öffnen möchten, können Sie Folgendes tun:quelle