Qual é a linha de comando equivalente a copiar um arquivo para a área de transferência? [duplicado]

78

Qual é a linha de comando equivalente a pressionar CTRL + C em um arquivo no gerenciador de arquivos para que o arquivo (não o nome do arquivo) seja copiado para a área de transferência?

Uma situação em que isso pode ser útil e rápido, por exemplo, é quando você deseja copiar para a área de transferência um arquivo do diretório em que você está no terminal para colar rapidamente o arquivo no diretório em que você está no gerenciador de arquivos. Existem outros.

    
por Strapakowsky 01.11.2012 / 08:46

2 respostas

89

Quando você pressiona Ctrl-C sobre um arquivo no gerenciador de arquivos, o conteúdo do arquivo NÃO é copiado para a área de transferência. Um teste simples: selecione um arquivo no gerenciador de arquivos, pressione Ctrl-C, abra um editor de texto, pressione Ctrl-V. O resultado não é o conteúdo do arquivo, mas seu caminho completo.

Na realidade, a situação é um pouco mais complicada, porque você não pode fazer o oposto - copiar uma lista de nomes de arquivos de um editor de texto e colá-los no gerenciador de arquivos.

Para copiar alguns dados da linha de comando para a área de transferência do X11, você pode usar o comando xclip , que pode ser instalado com

sudo apt-get install xclip

para copiar o conteúdo de um arquivo ou a saída de algum comando para o uso da área de transferência

cat ./myfile.txt|xclip -i

o texto pode ser colado em algum lugar usando o botão do meio do mouse (isso é chamado de "buffer de seleção primária").

Se você deseja copiar dados para a seleção "clipboard", para que possa ser colado em um aplicativo com Ctrl-V, você pode fazer

cat ./myfile.txt|xclip -i -selection clipboard

Para poder copiar arquivos da linha de comando e colá-los em um gerenciador de arquivos, você precisa especificar um "átomo de destino" correto para que o gerenciador de arquivos reconheça os dados na área de transferência e também forneça os dados no formato correto - felizmente, no caso de copiar arquivos em um gerenciador de arquivos é apenas uma lista de nomes absolutos de arquivos, cada um em uma nova linha, algo que é fácil de gerar usando o comando find :

find ${PWD} -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list

(pelo menos isso funciona para mim no KDE). Agora você pode incluir um pequeno script que você pode chamar, digamos, cb :

#!/bin/sh
xclip -i -selection clipboard -t text/uri-list

depois, coloque-o em ~/bin , defina o bit executável e use-o da seguinte forma:

find ${PWD} -name "*.txt"| cb

Legal, não é?

    
por Sergey 01.11.2012 / 09:29
8

Ouvi dizer que o xclip também suporta cópia de arquivos com xclip-copyfile e xclip-pastefile . Eu realmente não usei isso, mas pode ser uma solução.

    
por Gladen 01.11.2012 / 11:03