Copie de fichiers de la ligne de commande dans le presse-papiers


18

Dans un gestionnaire de fichiers GUI, il est possible de sélectionner quelques fichiers, appuyez sur Ctrl-C (qui censément copie les informations sur les fichiers dans le presse-papiers), puis accédez à un autre dossier et appuyez sur Ctrl-V, qui copiera ensuite les fichiers dans ce annuaire.

À titre expérimental, après avoir copié des fichiers dans le gestionnaire de fichiers, il est possible de passer à un éditeur de texte - en appuyant sur Ctrl-V, il colle une liste de noms de fichiers absolus. Le processus inverse (copier une liste de fichiers à partir d'un éditeur de texte et les coller dans un gestionnaire de fichiers) ne fonctionne pas, ce qui est censé être dû à différents atomes cibles

Le but de l'exercice est de pouvoir copier certains fichiers depuis la ligne de commande, par exemple

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

puis basculez vers un gestionnaire de fichiers et copiez-les tous dans un répertoire en utilisant Fichier-> Coller.

Donc, la question est: quels paramètres xclip(ou autre programme) dois-je spécifier pour que le gestionnaire de fichiers reconnaisse la sélection comme une liste de fichiers et active son élément de menu Coller?

Alternativement, existe-t-il un outil de bas niveau qui permettrait d'inspecter le contenu de la sélection X et de voir quelles données il contient actuellement?

Réponses:


12

Oui, en gros, vous devez proposer la sélection CLIPBOARD soit comme

  • text/uri-list avec le contenu étant

    /path/to/file1
    /path/to/file2
    
  • application/x-kde-cutselectionou x-special/gnome-copied-filesavec du contenu copy\nfile://$path1\nfile://$path2\0oucut\nfile://$path1\nfile://$path2...\0

Avec xclipvous pouvez y parvenir avec quelque chose comme

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

Je l' ai aussi trouvé cette loliclip commande qui semblait prometteur, mais si je pouvais récupérer les valeurs, je ne pouvais pas les stocker et de les récupérer à partir loliclipde pcmanfmsuccès.

Vous devriez également pouvoir l'implémenter en quelques lignes de perl-tk.


Ok, après quelques modifications, la text/uri-listvariante a fonctionné pour moi - je suis en mesure de copier des éléments de la ligne de commande et de coller des fichiers dans le gestionnaire de fichiers Dolphin. Il n'a même pas besoin de file://préfixes, ce qui permet à la commande de fonctionner correctement find. J'ai édité votre question pour ajouter la commande qui fonctionne pour moi dans KDE - quelqu'un peut-il la tester dans Gnome ou ailleurs?
Sergey

Merci pour l'édition. Il semble que ce file://ne soit pas nécessaire non pcmanfmplus (bien que pcmanfm l'inclue lui-même). Je suppose que certains caractères spéciaux (au moins LF) devraient être encodés en URI.
Stéphane Chazelas

Oui. Je peux confirmer que vous devez utiliser file:///new%0Alinepour les fichiers qui contiennent des caractères de nouvelle ligne, bien que tout autre caractère (y compris non-ASCII dans n'importe quel encodage) semble bien (avec pcmanfm au moins)
Stéphane Chazelas

1

pourquoi ne pas simplement le faire findpour vous?

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

EDIT: d'après ce que je comprends man xclip: il gère uniquement le texte, pas les fichiers ou les répertoires.


Principalement parce que c'est une expérience, bien que je pense que "copier les fichiers dans le presse-papiers maintenant, décider où vous voulez les coller plus tard" serait un moyen utile de faire les choses.
Sergey
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.