Copie o arquivo da linha de comando, cole na janela do Gnome ou vice-versa

3

Existem muitos exemplos de como copiar o "conteúdo" de um arquivo da linha de comando com a ajuda de xclip ou xsel . O que estou procurando é copiar um arquivo da linha de comando e colar no explorador de arquivos. Então eu vou usar um comando para copiar um arquivo, não apenas o conteúdo, e usar Ctrl v para colar na interface do usuário.

atualizado xclip-copyfile e xclip-pastefile funcionam perto do que eu esperava, mas quando executo xclip-copyfil e, só posso colar com o comando xclip-pastefile , não com a colagem da GUI.

    
por mert inan 29.06.2012 / 11:55

2 respostas

2

Eu uso o Nautilus, no Ubuntu, como meu navegador de arquivos, por isso não posso falar por nenhum outro navegador.
A maneira como o Nautilus manipula a colagem de um arquivo via Ctrl-v é bastante local para o Nautilus, ie. O Nautilus apenas reconhece Ctrl-v como cola um arquivo em resposta a um comando copiar arquivo que foi emitido enquanto está na nautilus . Isso significa que você não pode usar Ctrl-v para colar um arquivo cujo caminho você copiou em outro aplicativo.

No entanto, se for conveniente para você, Ctrl + Shift + v pode ser vinculado a um script que é executado em nautilus-scripts-manager . Com este script, você pode fazer praticamente o que quiser.

nautilus-scripts-manager fornece acesso a algumas informações fundamentais sobre o diretório atual e quais arquivos / diretórios estão selecionados. Uma coisa que eu particularmente gosto sobre "scripts nautilus" é que ele adiciona seus scripts ao item de menu File (assim como ao menu de contexto). Isso permite que você defina uma ligação de chave que seja local para Nautilus 3 ou Nautilus 2 .

Aqui está um exemplo aproximado, usando seu exemplo xclip-pastefiles já mencionado. Observe que, como está agora, é necessário configurar o xclip-copyfiles antes de executar este script Ctrl-Shift-v colar .
Depois de executar a configuração xclip-copyfiles , basta navegar para uma janela do Nautilus e selecionar o diretório de destino (ou um arquivo nesse diretório) e pressionar a combinação de teclas do seu script: Ctrl-Shift-v

#!/bin/bash   
# Note: 'leafpad' is a simple text editor which doubles as a quick-and-easy testing messsage-box

dir=$(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" |sed -n 1p)
if [[ -n "$dir" ]] ;then
    # target dir from 'Nautilus Scripts' (1st priority)    
    if [[ -e "$dir" ]] ;then
       [[ -d "$dir" ]] || dir="${dir%/*}" 
       [[ -d "$dir" ]] || dir=
    fi
else
  # target dir from $1 (2nd priority)
    dir="$1"
    if [[ -e "$dir" ]] ;then
       [[ -d "$dir" ]] || dir="${dir%/*}" 
       [[ -d "$dir" ]] || dir=
    fi
fi

if [[ -z "$dir" ]] ;then
    # target dir from clipboard (if not in $NAUTILUS_SCRIPT.. or  $1)
   dir="$(xclip -o -sel c)"
   if [[ -e "$dir" ]] ;then
      [[ -d "$dir" ]] || dir="${dir%/*}" 
      [[ -d "$dir" ]] || dir= 
   else
      dir=
   fi
fi

[[ -d "$dir" ]] || { echo "$(basename "$0"): target directory not found in clipboard" |leafpad; exit 1; } 

{ cd   "$dir"
  echo "Current  Directory:" 
  echo "  $dir"
  echo "======="
  echo  xclip-pastefile # run your command  ('echo' is for testing)
} 2>&1 |leafpad 
    
por 30.06.2012 / 09:29
0

Destaque o nome do arquivo e, na barra de localização do explorador de arquivos, pressione shift+insert

    
por 29.06.2012 / 12:01

Tags