X11
Si vous utilisez X11 (l'interface graphique la plus courante sur les systèmes Unix ou Linux traditionnels), pour copier le contenu d'un fichier dans la sélection CLIPBOARD X11 sans l' afficher , vous pouvez utiliser l' utilitaire xclip
ou xsel
.
xclip -sel c < file
Ou:
xsel -b < file
Pour stocker le contenu de file
sous la sélection CLIPBOARD X11.
Notez qu'il doit être stocké en utilisant un codage UTF-8 ou le collage ne fonctionnera pas correctement. Si le file
est encodé en utilisant un autre jeu de caractères, vous devez d'abord convertir en UTF-8, comme ceci:
iconv -f latin1 -t utf8 | xclip -sel c
Pour un fichier encodé en latin1 / iso8859-1 .
Pour le stocker en tant que CUT_BUFFER (celles-ci sont toujours interrogées par certaines applications, comme par exemple xterm
lorsque rien ne revendique les sélections CLIPBOARD ou PRIMARY X et qu'il n'est pas nécessaire qu'un processus soit exécuté pour le servir), bien que vous ne souhaitiez probablement pas ou besoin d'utiliser que de nos jours:
xprop -root -format CUT_BUFFER0 8s -set CUT_BUFFER0 "$(cat file)"
(supprime les caractères de fin de ligne de fin file
).
Écran GNU
GNU screen
a la readbuf
commande d'insuffler le contenu d'un fichier dans son propre tampon de copier-coller (avec lequel vous collez ^A]
). Alors:
screen -X readbuf file
Apple OS / X
Bien que Apple OS / X puisse utiliser X11. Ce n'est pas le cas par défaut, sauf si vous exécutez une application X11. Vous pourriez utiliser xclip
ou xsel
là - bas, car OS / X devrait synchroniser la sélection X11 CLIPBOARD avec les tampons de la carte de montage pour OS / X, mais ce serait un gaspillage de démarrer le serveur X11 rien que pour cela.
Sous OS / X, vous pouvez utiliser la pbcopy
commande pour stocker le contenu arbitraire dans cartonnés tampons:
pbcopy < file
(le codage de caractères du fichier est censé être celui de la locale).
Coquilles
La plupart des shells ont leurs propres tampons copier-coller. En mode emacs, les opérations de couper et copier stockent le texte copié / coupé sur une pile avec laquelle vous collez et collez Ctrl-Y, puis parcourez-le avecAlt+Y
zsh CUTBUFFER / killring
Dans zsh
, la pile est stockée dans le $killring
tableau et le haut de la pile dans la $CUTBUFFER
variable bien que ces variables ne soient disponibles que depuis les widgets Zsh Line Editor (zle) et que quelques widgets spécialisés constituent le moyen préféré pour les manipuler.
Comme ceux-ci ne sont disponibles que via le ZLE, le faire avec des commandes est un peu compliqué:
zmodload zsh/mapfile
zle-line-init() {
if [ -n "$FILE_TO_COPY" ]; then
zle copy-region-as-kill $mapfile[$FILE_TO_COPY]
unset FILE_TO_COPY
fi
}
zle -N zle-line-init
file-copy() FILE_TO_COPY=$1:A
Le zle-line-init
widget spécial est exécuté une fois au début de chaque nouvelle invite de commande. Cela signifie que le fichier ne sera copié qu'à la prochaine invite. Par exemple, si vous le faites:
file-copy file; sleep 2
Le fichier ne sera copié qu’après ces 2 secondes.