View-Dateien, die von Shell-Befehlen zurückgegeben wurden

362
frans

Sehr oft habe ich grepund finddurch Verzeichnisse (die normalerweise Bilder enthalten) und ich muss das Ergebnis "visuell" überprüfen, bevor ich das Ergebnis bearbeiten kann (wie Löschen, Verschieben usw.). Z.B:

find ./pictures -iname "*.jpg" -size +2M -not -path "*/holiday/*" path1/img_2345.jpg path1/img_2346.jpg path1/img_2347.jpg 

Ich möchte dann gerne schnell nachsehen, was sich hinter den Dateinamen befindet. Ich weiß, ich kann sie nur display, aber manchmal muss ich mit der Ausgabe von mehreren hundert Dateinamen umgehen, daher ist es nicht möglich, jeweils einen Befehl auszuführen.

nautilus/ nemoetc. sind auch keine Option, da ihre Filtermöglichkeiten zu begrenzt sind (ich würde gerne findund verwenden grep)

Nun also meine Frage: Gibt es eine Möglichkeit, die Ausgabe von beliebigen Befehlszeilenwerkzeugen bequem als Eingabe für einen Datei- / Bildbetrachter zu verwenden?

Edit: die Kommentare zeigen, dass ich einige Details verpasst habe, die mir wichtig sind:

  • Der Betrachter sollte die eigentlichen Dateien bearbeiten und nicht Kopien oder Symlinks (wie z. B. gwenviewwenn Sie Dateien in der Befehlszeile bereitstellen). Der Grund ist, ich möchte die Dateien löschen / umbenennen / verschieben können.

  • Der beteiligte Betrachter sollte die Informationen über die Verzeichnisstruktur aufbewahren (aus mehreren Gründen)

    • Das Bearbeiten von Dateien wird schwierig, wenn ich nur den Namen habe
    • Manchmal ist der Dateiname nicht eindeutig
    • Manchmal enthält der Verzeichnisname wichtige Informationen

Ich habe angefangen, ein Tool selbst zu implementieren, aber ich habe das schmutzige Gefühl, das Rad neu zu erfinden. Zumindest kann ich Ihnen besser zeigen, worüber ich spreche:

enter image description here

Offensichtlich können Sie im unteren Feld einen beliebigen Befehl schreiben, Dateinamen werden im linken Feld aufgelistet. Wenn Sie auf ein Listenelement klicken, wird es angezeigt.

Ich denke, diese Funktionalität könnte bereits als Plugin für einen Terminal-Emulator oder einen Dateimanager vorhanden sein - aber ich weiß es nicht.

Bis ich eine bessere Lösung finde, werde ich mich weiterentwickeln (schließen Sie sich mir hier an ). Aber ich möchte wirklich Zeit sparen und eine vorhandene Lösung verwenden.

Wie ist dein Arbeitsablauf?

0
Haben Sie versucht, etwas wie `gwenview $ (find ./pictures -iname" * .jpg "-size + 2M -not -path" * / holiday / * ") zu verwenden? Natürlich können Sie anstelle von "gwenview" auch einen anderen Viewer verwenden. Das ist nur eine Idee. Vielleicht möchten Sie die Ausgabe zitieren, um eventuelle Leerzeichen zu verwalten oder durch awk zu filtern. Im Allgemeinen ist es keine gute Idee, die Ausgabe von ls zu parsen ... aber für eine schnelle Lösung kann es funktionieren. Besser ein Skript erstellen und eine Reihe symbolischer Links in einem temporären Verzeichnis erstellen, das Sie löschen können, wenn Sie den Viewer beenden. Hastur vor 7 Jahren 1
@Hastur: Ich habe es versucht, aber dieser Ansatz hat zwei Nachteile: Er skaliert nicht gut mit einer großen Anzahl von Dateien, die vom Shell-Befehl zurückgegeben werden, und Sie verlieren normalerweise den Verzeichniskontext (keine Möglichkeit, Verzeichnisse usw. zu bearbeiten.) frans vor 7 Jahren 0
`Gwenview` erstellt insbesondere einen Ordner, der alle in der Befehlszeile enthaltenen Dateien enthält. Es gibt also keine Möglichkeit mehr, diese Dateien zu bearbeiten. frans vor 7 Jahren 0
Versuchen Sie, klarer zu sein: Ihre Frage war _ "Nun ist meine Frage: Gibt es eine Möglichkeit, die Ausgabe von beliebigen Befehlszeilentools als Eingabe für einen Datei- / Bildbetrachter zu verwenden?" _ __Das ist `$ (... ) __. Sie können die Dateien weiterhin kopieren oder ändern. Wenn Sie spezielle Bedürfnisse haben, sollten Sie es sagen, um Zeit zu sparen. Sie können dieses Verhalten immer mit einem Skript reproduzieren. Führen Sie z. B. die Liste der 'ln -s' aus, führen Sie den Viewer aus, und führen Sie die gewünschten Aktionen aus mehr vorhanden ... es gibt viele andere Möglichkeiten, dies alles mit ihren Rückseiten zu tun. Hastur vor 7 Jahren 0
Sie haben absolut Recht - ich wollte die möglichen Antworten nicht einschränken, indem ich einen zu genauen Arbeitsablauf beschreibe. Manchmal möchte ich nur Bilder anzeigen, manchmal möchte ich sie bearbeiten (umbenennen, entfernen, ..), manchmal möchte ich auch andere Dateitypen anzeigen (Text, Video, ..). Ihre Antwort wäre völlig in Ordnung gewesen, wenn Die Werkzeuge spielten gut. Ich werde versuchen, einige Anwendungsfälle bereitzustellen! frans vor 7 Jahren 0
Mit find's -exec oder xarg können Sie einen Symlink zu allen Dateien erstellen, die die Bedingung erfüllen, in ein Verzeichnis. Dann können Sie problemlos in dieses Verzeichnis wechseln und die Bilder mit fast jedem beliebigen Betrachter oder sogar mit Nautilus überprüfen. Gombai Sándor vor 7 Jahren 1
Dies ist, was `gwenview` tut, wenn Sie Dateinamen in der Befehlszeile angeben. Ich habe meiner Frage einige weitere Informationen hinzugefügt, um zu zeigen, warum dies für mich nicht funktioniert. frans vor 7 Jahren 0

0 Antworten auf die Frage