Dateipfad aus Nautilus kopieren

Mo, 16. November 2020, Ralf Hersel

Im GNOME-Dateimanager (GNOME Files, aka Nautilus) ist es in den aktuellen Versionen nicht mehr möglich, einen Dateipfad zu kopieren. Diese Funktion ist jedoch äusserst nützlich, falls man als Programmierer oder Web-Designer häufig die Pfade von Dateien im Code benötigt. Zum Glück gibt es die Möglichkeit den Dateimanager mit eigenen Skripten zu ergänzen. Darüber berichteten wir im Artikel: https://gnulinux.ch/gnome-files-nautilus-durch-skripte-erweitern. Mit diesen Skripten ist es auch möglich, die fehlende Funktion zum Kopieren des Dateipfades hinzuzufügen.

Momentan verhält sich ein Copy/Paste bei einer ausgewählten Datei in Nautilus so, dass folgender Text kopiert wird:

x-special/nautilus-clipboard
copy
file:///home/ralf/delme/bookmarks.html

Zwar ist darin der gewünschte Dateipfad enthalten (/home/ralf/delme/bookmarks.html), jedoch auch überflüssiger Text, den man nicht gebrauchen kann und der nachträglich gelöscht werden muss. Eine andere Möglichkeit besteht in der Tastenkombination: Ctrl+L, Ctrl+C und Ctrl+V zum Einfügen. Ctrl+L schaltet die Adresszeile von der Breadcrumb-Ansicht zur Text-Ansicht um; dort ist dann der Dateipfad zu sehen, welcher mit Copy/Paste verarbeitet werden kann.

Mit einem einzeiligen Skript ist es möglich, die gewünschte Funktion über das Kontext-Menü einer oder mehrerer selektierter Dateien zu erledigen. Wie das Anlegen von eigenen Skripten in Nautilus funktioniert, ist im oben genannten Artikel von Remo erklärt. Das Skript heisst:

/home/ralf/.local/share/nautilus/scripts/Dateipfad kopieren

Man beachte, das die Endung .sh oder .py für ein Bash- oder Python-Skript ausgelassen werden kann, weil der Skriptname genau so im Kontext-Menü von Nautilus erscheint; da möchte man keine Dateiendung haben. Der Inhalt des Skriptes ist sehr einfach:

#!/bin/bash
# requires installation of xclip
echo "${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}" | xclip -sel clip

Neben dem Shebang und dem Kommentar, dass 'xclip' installiert sein muss, gibt es nur eine funktionale Zeile. Der Inhalt der Umgebungsvariable NAUTILUS_SCRIPT_SELECTED_FILE_PATHS wird mittels 'echo' an das Programm 'xclip' gepiped und landet damit in der Zwischenablage. Dieses Skript funktioniert sowohl mit X.org, als auch mit Wayland als Window-Manager.

Leon
Geschrieben von Leon am 5. Februar 2021

Danke für den Tipp: unverständlich, warum das in Nautilus so gemacht wird. In der Version oben werden zwei newline character mitkopiert und eingefügt. Um das zu vermeiden, kann man ein -r hinzufügen: echo "${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}" | xclip -r -sel clip

-r, -rmlastnl when the last character of the selection is a newline character, remove it.