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

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

Existem muitos exemplos de como copiar o “conteúdo” de um arquivo da linha de comando com a ajuda de xclipou xsel. O que procuro é copiar um arquivo da linha de comando e colar no explorador de arquivos. Portanto, usarei um comando para copiar um arquivo, não apenas o conteúdo, e Ctrlvcolá-lo na UI.

Atualizada xclip-copyfilee xclip-pastefiletrabalho perto do que espero, mas quando executo xclip-copyfile, só consigo colar com xclip-pastefilecomando, não colar GUI.

Responder1

Eu uso o Nautilus, no Ubuntu, como meu navegador de arquivos, então não posso falar por nenhum outro navegador.
A maneira como o Nautilus lida com a colagem de um arquivo Ctrl-vé bastante local para o Nautilus, ou seja. O Nautilus só reconhece Ctrl-v comocole um arquivoem resposta a umcopiar arquivocomando que foi emitido enquanto estava emnáutiloem si. 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 executado em nautilus-scripts-manager. Com este script, você pode fazer praticamente o que quiser.

nautilus-scripts-managerdá acesso a algumas informações fundamentais sobre o diretório atual e quais arquivos/diretórios estão selecionados. Uma coisa que gosto particularmente nos "scripts nautilus" é que ele adiciona seus scripts ao Fileitem de menu (bem como ao menu de contexto). Isto permite que você defina uma ligação de teclas que seja local paraNáutilus 3ouNáutilus 2.

Aqui está um exemplo aproximado, usando o xclip-pastefilesexemplo já mencionado. Observe que, do jeito que está agora, é necessário que você configure o xclip-copyfilesantes de executar este Ctrl-Shift-vcolarroteiro.
Depois de executar o setup xclip-copyfiles, você só precisa navegar até uma janela do Nautilus, selecionar o diretório de destino (ou um arquivo nesse diretório) e pressionar a tecla 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 

informação relacionada