672 votes

Comment puis-je copier la sortie d'une commande directement dans mon presse-papiers?

Comment puis-je rediriger la sortie d'une commande dans mon presse-papiers et la coller de retour lorsque j'utilise un terminal ? Par exemple :

cat fichier | presse-papiers

0 votes

Possible duplicate de Pipe to/from Clipboard

0 votes

Possible duplicate de superuser.com/questions/104981/…

0 votes

Je viens de poser une question connexe car je ne parviens pas à faire fonctionner xclip lorsque je me connecte à Ubuntu depuis Git Bash sur Windows : stackoverflow.com/q/60117294/470749

725voto

Legend Points 29504

Une façon de le faire est la suivante :

  1. Installer xclip, par exemple :

    sudo apt-get install xclip

  2. Rediriger la sortie vers xclip pour la copier dans le presse-papiers :

    cat fichier | xclip

  3. Coller le texte que vous venez de copier dans une application X :

    xclip -o

Pour coller ailleurs que dans une application X, comme dans une zone de texte d'une page Web dans une fenêtre de navigateur, utilisez :

cat fichier | xclip -selection clipboard

Envisagez de créer un alias :

alias "c=xclip"
alias "v=xclip -o"

Pour voir à quel point c'est utile, imaginez que je veuille ouvrir mon chemin actuel dans une nouvelle fenêtre de terminal (il peut exister d'autres façons de le faire comme Ctrl+T sur certains systèmes, mais ceci est juste à des fins d'illustration) :

Terminal 1:
pwd | c

Terminal 2:
cd `v`

Remarquez les ` ` autour de v. Cela exécute d'abord v comme une commande, puis le substitue sur place pour cd à utiliser.

Ne copier que le contenu dans le presse-papiers X

cat fichier | xclip

190 votes

"cat fichier | xclip" copie uniquement le contenu dans le presse-papiers 'X', si vous voulez coller ailleurs qu'une application 'X', essayez ceci : "cat fichier | xclip -selection clipboard"

8 votes

Votre choix de poignée est approprié!

4 votes

Si vous souhaitez supprimer le caractère de nouvelle ligne afin de pouvoir coller et éditer directement le résultat de "pwd | c", vous pouvez faire "pwd | tr -d '\n' | xclip -selection c"

237voto

DavidPhillipOster Points 1294

Sous OS X, utilisez pbcopy; pbpaste va dans le sens inverse.

pbcopy < .ssh/id_rsa.pub

17 votes

Oui! Tout comme ceci par exemple : pbcopy < .ssh/id_rsa.pub

2 votes

Ne fonctionne pas pour la sortie de la commande - par exemple, pbcopy < git merge-base master some-branch

0 votes

Si vous utilisez tmux, cela ne fonctionnera pas à moins de réattacher votre session : superuser.com/a/413233/146254

51voto

Bob Enohp Points 96

J'ai écrit ce petit script qui facilite les commandes de copier/coller.

La version Linux du script nécessite que xclip soit déjà installé sur votre système. Le script s'appelle "clipboard".

#!/bin/bash
# Version Linux
# Utilisez ce script pour mettre en entrée/sortie du presse-papiers
#
# Utilisation : someapp | clipboard     # Mettez la sortie de someapp dans le presse-papiers
#                clipboard | someapp     # Mettez le contenu du presse-papiers dans someapp
#

if command -v xclip 1>/dev/null; then
    if [[ -p /dev/stdin ]] ; then
        # stdin est un tuyau
        # stdin -> presse-papier
        xclip -i -selection clipboard
    else
        # stdin n'est pas un tuyau
        # presse-papier -> stdout
        xclip -o -selection clipboard
    fi
else
    echo "N'oubliez pas d'installer xclip"
fi

La version OS X du script repose sur pbcopy et pbpaste qui sont préinstallés sur tous les Mac.

#!/bin/bash
# Version OS X
# Utilisez ce script pour mettre en entrée/sortie du presse-papiers
#
# Utilisation : someapp | clipboard     # Mettez la sortie de someapp dans le presse-papiers
#                clipboard | someapp     # Mettez le contenu du presse-papiers dans someapp
#

if [[ -p /dev/stdin ]] ; then
    # stdin est un tuyau
    # stdin -> presse-papier
    pbcopy
else
    # stdin n'est pas un tuyau
    # presse-papier -> stdout
    pbpaste
fi

Utiliser le script est très simple car il vous suffit de mettre en entrée ou sortie de clipboard comme le montrent ces deux exemples.

$ cat file | clipboard

$ clipboard | less

4 votes

Je utilise les noms pbcopy et pbpaste sur Linux donc cela fonctionne pour les deux Linux et OS X.

0 votes

Pour que le script fonctionne de manière globale sous Ubuntu: * Enregistrez-le dans ~/.scripts/clipboard * Rendez-le exécutable avec chmod +x ~/.scripts/clipboard pour bash: * ajoutez export PATH=$PATH:~/.scripts à la fin de ~/.bashrc pour fish: * ajoutez set PATH ~/.scripts $PATH à ~/.config/fish/fish.config Si l'un des fichiers ou dossiers n'existe pas déjà, créez-les simplement.

2 votes

Vous pouvez également envelopper ce script dans une fonction clipboard(){ ... } et le coller dans .bashrc

4voto

Dirk Duschinger Points 11

J'ai créé un petit outil offrant des fonctionnalités similaires, sans utiliser xclip ou xsel. stdout est copié dans un presse-papiers et peut être collé à nouveau dans le terminal. Voir:

https://sourceforge.net/projects/commandlinecopypaste/

Notez que cet outil ne nécessite pas de session X. Le presse-papiers peut simplement être utilisé dans le terminal et n'a pas besoin d'être collé avec Ctrl+V ou en cliquant avec le bouton du milieu dans d'autres fenêtres X.

-6voto

DenniJensen Points 163

C'est beaucoup plus facile. Appuyez sur Shift + Ctrl + C pour copier. Et Shift + Ctrl + V pour coller.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X