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
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
Une façon de le faire est la suivante :
Installer xclip
, par exemple :
sudo apt-get install xclip
Rediriger la sortie vers xclip
pour la copier dans le presse-papiers :
cat fichier | xclip
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
"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"
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"
Ne fonctionne pas pour la sortie de la commande - par exemple, pbcopy < git merge-base master some-branch
Si vous utilisez tmux, cela ne fonctionnera pas à moins de réattacher votre session : superuser.com/a/413233/146254
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
Je utilise les noms pbcopy
et pbpaste
sur Linux donc cela fonctionne pour les deux Linux et OS X.
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.
Vous pouvez également envelopper ce script dans une fonction clipboard(){ ... }
et le coller dans .bashrc
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.
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.
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
2 votes
Enregistrer le contenu du fichier dans le presse-papiers.
apt install xclip
etcat file | xclip -sel clip