GNU/Linux >> Tutoriels Linux >  >> Linux

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

J'ai créé un outil pour Linux/OSX/Cygwin qui est similaire à certains de ces autres mais légèrement unique. Je l'appelle cb et il peut être trouvé dans ce gist github.

Dans cet essentiel, je montre comment copier et coller via la ligne de commande en utilisant Linux, macOS et Cygwin.

Linux

_copy(){
    cat | xclip -selection clipboard
}

_paste(){
    xclip -selection clipboard -o
}

macOS

_copy(){
    cat | pbcopy
}

_paste(){
    pbpaste
}

Cygwin

_copy(){
    cat > /dev/clipboard
}

_paste(){
    cat /dev/clipboard
}

Remarque :à l'origine, j'avais juste l'intention de le mentionner dans mon commentaire à la réponse de Bob Enohp. Mais ensuite j'ai réalisé que je devais ajouter un README à mon essentiel. Étant donné que l'éditeur Gist n'offre pas d'aperçu Markdown, j'ai utilisé la boîte de réponse ici et après l'avoir copié/collé dans ma pensée essentielle, "Je pourrais aussi bien soumettre la réponse." Si vous souhaitez discuter des fonctionnalités/bogues il serait probablement préférable de le faire dans les commentaires pour l'essentiel sur github.

CB

Un té étanche au presse-papiers

Ce script est calqué sur tee (voir man tee ).

C'est comme vos commandes normales de copier-coller, mais unifié et capable de détecter quand vous voulez qu'il soit chaîné

Exemples

Copier

$ date | cb
# clipboard contains: Tue Jan 24 23:00:00 EST 2017

Coller

# clipboard retained from the previous block
$ cb
Tue Jan 24 23:00:00 EST 2017
$ cb | cat
Tue Jan 24 23:00:00 EST 2017
$ cb > foo
$ cat foo
Tue Jan 24 23:00:00 EST 2017

Chaînage

$ date | cb | tee updates.log
Tue Jan 24 23:11:11 EST 2017
$ cat updates.log
Tue Jan 24 23:11:11 EST 2017
# clipboard contains: Tue Jan 24 23:11:11 EST 2017

Copier via la redirection de fichier

(chronologiquement, il était logique de faire une démonstration à la fin)

# clipboard retained from the previous block
$ cb < foo
$ cb
Tue Jan 24 23:00:00 EST 2017
# note the minutes and seconds changed from 11 back to 00

J'ai toujours voulu faire cela et j'ai trouvé une façon agréable et facile de le faire. J'ai écrit la procédure complète au cas où quelqu'un d'autre en aurait besoin.

Installez d'abord un programme de 16 Ko appelé xclip :

sudo apt-get install xclip

Vous pouvez ensuite diriger la sortie vers xclip à copier dans le presse-papier :

cat file | xclip

Pour coller le texte que vous venez de copier, vous devez utiliser :

xclip -o

Pour vous simplifier la vie, vous pouvez configurer un alias dans votre fichier .bashrc comme je l'ai fait :

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

Pour voir à quel point cela est utile, imaginez que je veuille ouvrir mon chemin actuel dans une nouvelle fenêtre de terminal (il peut y avoir d'autres façons de le faire comme Ctrl +T sur certains systèmes, mais ce n'est qu'à titre d'illustration) :

Terminal 1:
pwd | c

Terminal 2:
cd `v`

Remarquez le ` ` environ v . Ceci exécute v en tant que commande d'abord, puis le remplace sur place par cd à utiliser.

Copiez uniquement le contenu dans le X presse-papiers

cat file | xclip

Si vous voulez coller ailleurs qu'un X application, essayez celle-ci :

cat file | xclip -selection clipboard

Sous OS X, utilisez pbcopy; pbpaste va dans la direction opposée.

pbcopy < .ssh/id_rsa.pub

Linux
  1. Linux - Comment démarrer Puppy Linux Slacko dans la ligne de commande ?

  2. Comment définir une variable égale à la sortie d'une commande dans Grub2 ?

  3. Comment utiliser la commande Rsync sous Linux ?

  4. Comment ajouter la sortie à un fichier ?

  5. Comment puis-je boucler sur la sortie d'une commande shell ?

Comment changer la couleur de sortie de 'Echo' sous Linux

Comment puis-je rappeler l'argument de la commande bash précédente ?

Comment copier le tampon de copie GNU Screen dans le presse-papiers ?

Linux Shell :copier la sortie dans le presse-papiers sans utiliser la souris ?

Comment copier la sortie du terminal ?

Comment puis-je copier un dossier à partir de la ligne de commande Linux ?