Kopieren von Dateien von der Kommandozeile in die Zwischenablage


18

In einem GUI-Dateimanager ist es möglich, einige Dateien auszuwählen, STRG-C zu drücken (was angeblich die Informationen über die Dateien in die Zwischenablage kopiert), dann zu einem anderen Ordner zu navigieren und STRG-V zu drücken, wodurch die Dateien in diesen kopiert werden Verzeichnis.

Experimentell kann nach dem Kopieren von Dateien im Dateimanager in einen Texteditor gewechselt werden. Durch Drücken von Strg-V wird eine Liste der absoluten Dateinamen eingefügt. Der umgekehrte Vorgang (Kopieren einer Liste von Dateien aus einem Texteditor und Einfügen in einen Dateimanager) funktioniert nicht, was vermutlich auf unterschiedliche Zielatome zurückzuführen ist

Ziel der Übung ist es, beispielsweise einige Dateien von der Kommandozeile kopieren zu können

find ${PWD} -name "*.txt" | xclip <magic parameters>

Wechseln Sie dann zu einem Dateimanager und kopieren Sie sie alle mit Datei-> Einfügen in ein Verzeichnis.

Die Frage ist also: Welche Parameter von xclip (oder ein anderes Programm) muss ich angeben, damit der Dateimanager die Auswahl als Dateiliste erkennt und den Menüpunkt Einfügen aktiviert?

Alternativ gibt es ein einfaches Tool, mit dem Sie den Inhalt der X-Auswahl überprüfen und feststellen können, welche Daten aktuell enthalten sind.

Antworten:


12

Ja, im Grunde müssten Sie die CLIPBOARD-Auswahl entweder als anbieten

  • text/uri-list mit dem Inhalt zu sein

    /path/to/file1
    /path/to/file2
    
  • application/x-kde-cutselectionoder x-special/gnome-copied-filesmit Inhalt copy\nfile://$path1\nfile://$path2\0odercut\nfile://$path1\nfile://$path2...\0

Mit können xclipSie dies mit so etwas erreichen

find "$PWD" -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list

Ich habe auch diesen Loliclip- Befehl gefunden, der vielversprechend aussah, aber obwohl ich die Werte abrufen konnte, war ich nicht in der Lage, sie zu speichern und sie loliclipvon pcmanfmerfolgreich abrufen zu lassen .

Sie sollten es auch in ein paar Zeilen implementieren können perl-tk.


Ok, nach einigem Basteln hat die text/uri-listVariante für mich funktioniert - ich kann Sachen von der Kommandozeile kopieren und Dateien in den Dolphin-Dateimanager einfügen. Es werden nicht einmal file://Präfixe benötigt, mit denen der Befehl einwandfrei funktioniert find. Ich habe Ihre Frage bearbeitet, um den Befehl hinzuzufügen, der in KDE für mich funktioniert. Kann jemand ihn in Gnome oder anderswo testen?
Sergey

Danke für die Bearbeitung. Es sieht so aus, als ob das file://bei pcmanfmbeiden nicht notwendig ist (obwohl pcmanfm es selbst beinhaltet). Ich nehme an, dass einige Sonderzeichen (zumindest LF) URI-codiert sein sollten.
Stéphane Chazelas

Ja. Ich kann bestätigen, dass Sie file:///new%0Alinefür Dateien, die ein Newline-Zeichen enthalten, verwenden müssen, obwohl jedes andere Zeichen (einschließlich Nicht-ASCII in jeder Codierung) in Ordnung zu sein scheint (zumindest mit pcmanfm)
Stéphane Chazelas

1

warum machst finddu es nicht einfach für dich?

find ${PWD} -name "*.txt" -exec cp {} /full/path \; && gnome-open /full/path &

BEARBEITEN: von was ich verstehe von man xclip: es behandelt nur Text, nicht Dateien oder Verzeichnisse.


Meistens, weil es ein Experiment ist, obwohl ich denke, dass das "Kopieren von Dateien in die Zwischenablage jetzt, entscheiden, wo Sie sie später einfügen möchten" eine nützliche Möglichkeit wäre, Dinge zu tun.
Sergey
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.