Datei aus der Befehlszeile kopieren, in das Gnome-Fenster einfügen oder umgekehrt

Datei aus der Befehlszeile kopieren, in das Gnome-Fenster einfügen oder umgekehrt

Es gibt zahlreiche Beispiele, wie man den „Inhalt“ einer Datei mithilfe von xclipoder von der Befehlszeile aus kopiert xsel. Ich möchte eine Datei von der Befehlszeile aus kopieren und in den Datei-Explorer einfügen. Ich werde also einen Befehl verwenden, um eine Datei zu kopieren, nicht nur den Inhalt, und Ctrlvihn in die Benutzeroberfläche einfügen.

Aktualisiert xclip-copyfileund xclip-pastefilefunktioniert ungefähr so, wie ich es erwarte, aber wenn ich xclip-copyfile ausführe, kann ich nur mit xclip-pastefileBefehlen einfügen, nicht mit der GUI.

Antwort1

Ich verwende Nautilus in Ubuntu als Dateibrowser, daher kann ich nicht für andere Browser sprechen.
Die Art und Weise, wie Nautilus das Einfügen einer Datei handhabt, Ctrl-vist ziemlich lokal für Nautilus, d. h. Nautilus erkennt nur Strg-v alsEinfügen einer Dateials Reaktion auf eineDatei kopierenBefehl, der ausgegeben wurde, währendNautilusselbst. Das bedeutet, dass Sie Strg-V nicht verwenden können, um eine Datei einzufügen, deren Pfad Sie in einer anderen Anwendung kopiert haben.

Wenn Sie möchten, können Sie Strg+Umschalt+V jedoch an ein Skript binden, das unter ausgeführt wird nautilus-scripts-manager. Mit diesem Skript können Sie praktisch alles machen, was Sie möchten.

nautilus-scripts-managergibt Ihnen Zugriff auf einige grundlegende Informationen über das aktuelle Verzeichnis und welche Dateien/Verzeichnisse ausgewählt sind. Was mir an „nautilus-scripts“ besonders gefällt, ist, dass es seine Skripte zum FileMenüpunkt (sowie zum Kontextmenü) hinzufügt. Dies ermöglicht Ihnen, eine Tastenkombination festzulegen, die lokal ist fürNautilus 3oderNautilus 2.

Hier ist ein grobes Beispiel, das Ihr bereits erwähntes Beispiel verwendet . Beachten Sie, dass es in der aktuellen Form erfordert, dass Sie vor dem Ausführen dieses Ctrl-Shift-v xclip-pastefileseinrichtenxclip-copyfilesPasteSkript.
Sobald Sie das Setup ausgeführt haben xclip-copyfiles, müssen Sie nur zu einem Nautilus-Fenster navigieren, das Zielverzeichnis (oder eine Datei in diesem Verzeichnis) auswählen und die Tastenkombination Ihres Skripts drücken:Strg-Umschalt-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 

verwandte Informationen