Copie el archivo desde la línea de comandos, péguelo en la ventana de Gnome o viceversa

Copie el archivo desde la línea de comandos, péguelo en la ventana de Gnome o viceversa

Hay muchos ejemplos de cómo copiar el "contenido" de un archivo desde la línea de comando con la ayuda de xclipo xsel. Lo que busco es copiar un archivo desde la línea de comando y pegarlo en el explorador de archivos. Entonces usaré un comando para copiar un archivo, no solo el contenido, y Ctrlvlo usaré para pegarlo en la interfaz de usuario.

actualizado xclip-copyfiley xclip-pastefiletrabajo cerca de lo que espero, pero cuando ejecuto xclip-copyfile, solo puedo pegar con xclip-pastefilecomando, no con GUI.

Respuesta1

Utilizo Nautilus, en Ubuntu, como mi explorador de archivos, por lo que no puedo hablar por ningún otro navegador.
La forma en que Nautilus maneja el pegado de un archivo Ctrl-ves bastante local para Nautilus, es decir. Nautilus sólo reconoce Ctrl-v comopegar un archivoen respuesta a uncopiar archivocomando que fue emitido mientras estaba ennautilosí mismo. Esto significa que no puede usar Ctrl-v para pegar un archivo cuya ruta copió en otra aplicación.

Sin embargo, si le conviene, Ctrl+Shift+v se puede vincular a un script que se ejecuta en nautilus-scripts-manager. Con este script, puedes hacer prácticamente lo que quieras.

nautilus-scripts-managerle brinda acceso a información fundamental sobre el directorio actual y qué archivos/directorios están seleccionados. Una cosa que me gusta especialmente de "nautilus-scripts" es que agrega sus scripts al Fileelemento del menú (así como al menú contextual). Esto le permite configurar una combinación de teclas que es local paraNautilo 3oNautilo 2.

Aquí hay un ejemplo aproximado, utilizando el xclip-pastefilesejemplo ya mencionado. Tenga en cuenta que, tal como está ahora, requiere que configure xclip-copyfilesantes de ejecutar Ctrl-Shift-vpegarguion.
Una vez que haya ejecutado la configuración xclip-copyfiles, solo necesita navegar a una ventana de Nautilus, seleccionar el directorio de destino (o un archivo en ese directorio) y presionar la combinación de teclas de su script:Ctrl-Mayús-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 

información relacionada