X11
Se 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 CLIENDE do X11 sem exibindo , você pode usar o xclip
ou xsel
utility.
xclip -sel c < file
Ou:
xsel -b < file
Para armazenar o conteúdo de file
como a seleção CLIPBOARD X11.
Observe que ele deve ser armazenado usando uma codificação UTF-8 ou, caso contrário, a colagem não funcionará corretamente. Se o file
é codificado usando um outro conjunto de caracteres, você deve converter para UTF-8 primeiro, como:
iconv -f latin1 -t utf8 | xclip -sel c
Para um arquivo codificado em latin1 / iso8859-1 .
Para armazená-lo como um CUT_BUFFER (aqueles ainda são consultados por alguns aplicativos como xterm
quando nada reclama as seleções CLIPBOARD ou PRIMARY X e não precisam ter um processo em execução para servir como para seleções), embora você provavelmente não vai querer ou precisar 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 comando readbuf
para introduzir o conteúdo de um arquivo em seu próprio buffer de copiar e colar (que você cola com ^A]
). Então:
screen -X readbuf file
Apple OS / X
Embora o Apple OS / X possa usar o X11. Não é por padrão, a menos que você execute um aplicativo X11. Você seria capaz de usar xclip
ou xsel
lá como OS / X deve sincronizar a seleção X11 CLIPBOARD com buffers de pasteboard OS / X, mas isso seria um desperdício para iniciar o servidor X11 apenas para isso. / p>
No OS / X, você pode usar o pbcopy
comando para armazenar conteúdo arbitrário em buffers pasteboard :
pbcopy < file
(espera-se que a codificação de caracteres do arquivo seja a do local).
Shells
A maioria dos shells tem 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 que você puxa / cola com Ctrl-Y e percorre com Alt + Y
zsh CUTBUFFER / killring
Em zsh
, a pilha é armazenada na matriz $killring
e na parte superior da pilha na variável $CUTBUFFER
, embora essas variáveis estejam disponíveis apenas nos widgets do Editor de Zsh Line (zle) e alguns widgets especializados sejam a maneira preferida de manipulá-los.
Como eles só estão disponíveis através do ZLE, fazê-lo com comandos é um pouco confuso:
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 widget especial zle-line-init
é executado uma vez no início de cada novo prompt de comando. O que isso significa é que o arquivo só será copiado no próximo prompt. Por exemplo, se você fizer:
file-copy file; sleep 2
O arquivo só será copiado após esses 2 segundos.