Como posso selecionar e copiar nomes de arquivos na linha de comando sem usar o mouse?

3

Normalmente, quando eu quero executar uma ação em um arquivo que eu descobri no terminal depois de chamar [ls], eu teria que - com meu mouse - destacar, clicar com o botão esquerdo, copiar o nome do arquivo, digitar o comando e colar o nome do arquivo novamente.

Existe uma maneira de copiar uma determinada string que foi exibida anteriormente no terminal sem usar o mouse?

Obrigado!

    
por J.L.Louis 31.03.2015 / 05:36

4 respostas

1

Se você está lidando com arquivos descobertos via ls , geralmente acho mais fácil concluir a guia ou globá-los: se eu quiser agir em report.tex , por exemplo, é mais rápido fazer vim re<TAB> do que para copiar e colar.

Mas copiar e colar tem seus usos, certamente. Eu faço a maior parte do meu trabalho em tmux com vi bindings. Se você tiver ligações emacs (o padrão), a abordagem é semelhante (abaixo, C- significa "pressione Control e depois a tecla após o traço", A- é semelhante, mas para Alt e prefix é seu prefixo, provavelmente C-b ):

  1. Em qualquer um, pressione <prefix>[ para entrar no modo de cópia
  2. Navegue até o final do texto que você deseja copiar usando as teclas de seta (sempre) ou hjkl (apenas no modo vi, provavelmente?)
  3. Se estiver no modo emacs, pressione C-<Spaaaaaace> para iniciar a seleção. Se estiver no modo vi, pressione <Spaaaaaace> .
  4. Se estiver no modo emacs, pressione A-w para copiar o texto selecionado. No modo vi, pressione <Enter> .
  5. Cole a seleção com <prefix>] ou use o comando tmux show-buffer para gerar a saída do texto copiado, útil para canalizar comandos e automação.

Tmux lembra o que você copia quando copia outras coisas. Veja a lista do que foi copiado com <prefix># . <prefix>] cola o mais recente, mas tmux show-buffer pode receber um argumento -n <number> para gerar uma cópia mais antiga.

Eu não sei como copiar em screen do topo da minha cabeça, mas é um processo aproximadamente similar; Tenho certeza que há uma riqueza de posts sobre isso no google.

Edit: Eu definitivamente recomendo usar um multiplexador de terminal em geral; você terá outro terminal à sua disposição em três toques de tecla, independentemente do emulador de terminal ou do gerenciador de janelas. Memória muscular é boa!

    
por 31.03.2015 / 06:25
1

A Urxvt tem a excelente coleção de scripts urxvt-perls que permite operar com texto no terminal sem recorrer a o roedor.

Além de copiar e colar, você pode selecionar URLs e abri-los no navegador ou arrastá-los para a área de transferência, pesquisar o pergaminho e, geralmente, tratar o texto como se estivesse em seu $ EDITOR.

    
por 31.03.2015 / 06:33
0
sudo apt-get install xclip

Crie um alias:

 alias pbcopy='xclip -selection clipboard'

Use este comando para copiar

ls | pbcopy

(Você também pode usar

ls <filename> | pbcopy 

para copiar um nome de arquivo específico. Se você não sabe o que é um alias: link )

    
por 30.12.2016 / 02:01
-2

é tão simples quanto digitar "ls | pbcopy" (sem as aspas). A desvantagem é que você não pode colá-lo em uma janela de terminal, ele acha que você quer pressionar enter após cada nome de arquivo colado. Mas você pode colá-los em um documento.

    
por 29.06.2015 / 12:46