X11
Se você estiver usando o X11 (a GUI mais comum em sistemas tradicionais baseados em Unix ou Linux), para copiar o conteúdo de um arquivo para a seleção CLIPBOARD do X11 sem exibi- lo, poderá usar o utilitário xclip
ou xsel
.
xclip -sel c < file
Ou:
xsel -b < file
Para armazenar o conteúdo file
como a seleção CLIPBOARD X11.
Observe que ele deve ser armazenado usando uma codificação UTF-8 ou colar não funcionará corretamente. Se file
for codificado usando um outro conjunto de caracteres, você deverá converter primeiro em UTF-8, como:
iconv -f latin1 -t utf8 | xclip -sel c
Para um arquivo codificado em latin1 / iso8859-1 .
Para armazená-lo como um CUT_BUFFER (esses ainda são consultados por alguns aplicativos, como xterm
quando nada reivindica as seleções CLIPBOARD ou PRIMARY X e não precisa ter um processo em execução para servi-lo como nas seleções), embora você provavelmente não queira ou precisa usar isso hoje em dia:
xprop -root -format CUT_BUFFER0 8s -set CUT_BUFFER0 "$(cat file)"
(remove os caracteres de nova linha à direita de file
).
Tela GNU
O GNU screen
tem o readbuf
comando de extrair o conteúdo de um arquivo em seu próprio buffer de copiar e colar (com o qual você cola ^A]
). Assim:
screen -X readbuf file
Apple OS / X
Embora o Apple OS / X possa usar o X11. Por padrão, a menos que você execute um aplicativo X11. Você seria capaz de usar xclip
ou o xsel
OS / X deve sincronizar a seleção do X11 CLIPBOARD com os buffers do OS / X, mas seria um desperdício iniciar o servidor X11 apenas para isso.
No OS / X, você pode usar o pbcopy
comando para armazenar conteúdo arbitrário em buffers de papelão :
pbcopy < file
(a codificação de caracteres do arquivo deve ser a do código do idioma).
Cartuchos
A maioria dos shells possui seus próprios buffers de copiar e colar. No modo emacs, as operações de recortar e copiar armazenam o texto copiado / recortado em uma pilha na qual você puxa / cola Ctrl-Ye percorre comAlt+Y
zsh CUTBUFFER / killring
Em zsh
, a pilha é armazenada na $killring
matriz e a parte superior da pilha na $CUTBUFFER
variável, embora essas variáveis estejam disponíveis apenas nos widgets Zsh Line Editor (zle) e alguns widgets especializados sejam a maneira preferida de manipulá-los.
Como esses estão disponíveis apenas através do ZLE, fazê-lo com comandos é um pouco complicado:
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
O zle-line-init
widget especial é executado uma vez no início de cada novo prompt de comando. O que isso significa é que o arquivo será copiado apenas no próximo prompt. Por exemplo, se você fizer:
file-copy file; sleep 2
O arquivo será copiado somente após esses 2 segundos.