ubuntuusers.de

Skripte

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

./nautilus_logo.png Man kann den Dateimanager Nautilus durch Skripte erweitern. Diese Skripte sind einfache ausführbare Dateien, z.B. Shell-Skripte. Sie werden im Verzeichnis ~/.local/share/nautilus/scripts/ gespeichert und erweitern das Kontext-Menü um den neuen Punkt "Skripte".

Installation eines Skripts für einen Benutzer

nautilus_scripts.png

Als Archiv vorliegend

Zunächst muss das Skript nach ~/.local/share/nautilus/scripts/ entpackt [4] und ausführbar gemacht [5] werden.

Um das Skript zu verwenden, klickt man nun mit der rechten Maustaste rechte Maustaste auf eine Datei, die das Skript verwenden soll, und wählt "Skripte → SKRIPTNAME".

Als Datei vorliegend

Falls das Skript auf einer Webseite vorliegt, markiert man den Text des Skripts und kopiert diesen in einen Editor [3]. Das Skript speichert man dann als ~/.local/share/nautilus/scripts/SKRIPTNAME ab und macht die Datei ausführbar.

Um das Skript zu verwenden, klickt man nun mit der rechten Maustaste auf eine Datei, die das Skript verwenden soll, und wählt "Skripte → SKRIPTNAME".

Installation eines Skripts für alle Benutzer

Man hinterlegt das entpackte und für alle Benutzer lesbare und ausführbare Skript in einem Verzeichnis, welches auch für alle Benutzer lesbar und durchsuchbar sein muss (Berechtigungen: rwxr-xr-x bzw. 755). Nautilus sieht hierfür selbst keinen besonderen Ort vor. Man kann z.B. als root ein Verzeichnis /home/Austausch/Skripte/ anlegen. Jeder Benutzer, der das Skript verwenden möchte, legt dann selbst im eigenen Benutzerverzeichnis im Ordner ~/.local/share/nautilus/scripts/ einen Hard- oder Softlink zum gemeinsamen Skript an.

Beispiele

Weitere erwähnenswerte Skripte können gerne ergänzt werden.

Fertige Skripte

Einige nützliche fertige Skripte:

  • PDF-Konvertierung - Bilder in PDF-Dateien umwandeln, PDF-Dokumente vereinen

  • PDF-Komprimierung - die Dateigröße von PDF-Dateien optimieren

  • Splitten und Vereinigen - Dateien in Nautilus in mehrere Dateien teilen und zusammenfügen

  • Symbolischer Link - einen symbolischen Link über das Kontextmenü bearbeiten

  • Volltextsuche - Volltextsuche in Dateien

  • ExiFotoCopy - Bilder/Fotos von einem externen Datenträger (MMC/SD) oder einer Digitalkamera auf ein anderes Speichermedium kopieren, skalieren und nach den Exif-Informationen (z.B. Aufnahmedatum) in eine Ordnerstruktur einsortieren

  • SMBsession - mit Nautilus Samba-Freigaben ohne Verwendung des alten / unsicheren Protokolls SMBv1 durchsuchen

  • SMBusershare - ohne Root-Rechte Ordner über Nautilus (und Thunar) freigeben

Weitere Anregungen sind unter Skripte zu finden.

GNOME-Terminal öffnen

Die Datei ~/.local/share/nautilus/scripts/Terminal mit einem Editor [3] anlegen:

1
2
#!/bin/bash
gnome-terminal

Es öffnet sich das GNOME-Terminal direkt in dem Verzeichnis, in dem man sich gerade befindet.

Wenn man das Terminal im selektierten Ordner öffnen will, muss man die an das Skript übergebenen Informationen auswerten:

1
2
3
4
5
6
7
#! /bin/bash -e
cat <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"		|
while read Ordner
do	test -d "$Ordner" || continue
	gnome-terminal --working-directory="$Ordner"
#	break
done

Wenn man mehrere Ordner auswählt, öffnet das Skript auch mehrere Terminal-Fenster. Wer dies nicht erwünscht, entferne das Kommentarzeichen vor break.

In den offiziellen Paketquellen enthalten ist das Paket nautilus-open-terminal, das die gleiche Funktionalität erfüllt (siehe Terminal (Abschnitt „Integration-in-Nautilus“)).

Datei datiert kopieren

Oft möchte man beim Arbeiten an einer Datei den Stand vor der weiteren Bearbeitung schnell sichern und erfindet dann Dateinamen wie config alt oder config backup. Sinnvoller wäre eine Kennzeichnung mit dem aktuellen Zeitpunkt wie config 2020-06-07. Das hier vorgestellte Skript implementiert hierfür eine bequeme Bedienung als Nautilus-Skript.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#! /bin/bash -e
# nautlius helper script
#	~/.local/share/nautilus/scipts/'Datei datiert kopieren'

# Erzeugt Dateikopie mit angehängtem Datum im Dateinamen.
# Copy file and add date to its name.

# SPDX-License-Identifier: GPL-2.0-or-later
# (c) Copyright 2020	kB @ ubuntuusers.de

separator=' - '
while read FILE
do	test -f "$FILE" || continue
	for FMT in date minutes seconds
	do	COPY=$(date --iso=$FMT) ; COPY=${COPY/T/$separator}
		COPY=${FILE}$separator${COPY/+??:00/}
		! test -e "$COPY" || continue
		cp "$FILE" "$COPY" ; break
	done	
done	<<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"

Wenn man diesen Mechanismus mehrmals am Tag benutzt, wird zusätzlich zum Datum noch die Uhrzeit hinzugefügt, nötigenfalls bis zur Sekunden-Auflösung.

Datei(en) in Audacious-Playliste hinzufügen

Mit diesem Skript kann man eine oder auch mehrere Datei(en) zur Wiedergabeliste von Audacious hinzufügen. Dateiname: ~/.local/share/nautilus/scripts/Audacious-Wiedergabeliste

1
2
3
4
#!/bin/bash
for FILE in "$@"; do
    audacious -e "$FILE"
done

Skript-Verwaltung

Ab Ubuntu 18.04 kann man als grafische Oberfläche zur Verwaltung, Erstellung und Bearbeitung von benutzerdefinierten Nautilus-Skripten das Werkzeug FileManager-Actions verwenden.

Bei Ubuntu 16.04 bietet Nautilus Actions Configuration Tool eine ähnliche Funktionalität.

Skripte selbst schreiben

Sollte man vorhaben, selbst Skripte für Nautilus zu entwickeln und hier im Wiki zu veröffentlichen, hier noch ein paar Empfehlungen.

Allgemein

  • Skripte sollten als tar.gz- oder tar.bz2-Paket vorliegen.

  • Nach Möglichkeit sollten als Skriptsprachen nur Bash und Python verwendet werden.

  • Externe Programme sollten so wenig wie möglich verwendet werden. Benötigt man Programme, die nicht vorinstalliert sind, so sollten sie über das Paketmanagement verfügbar sein. Das gleiche gilt für Bibliotheken oder Python-Module.

  • Die Art der Skripte sollte für Nautilus ohne Dateiendung erkennbar sein. Dies ist zum Beispiel durch den Shebang #!/bin/sh bei Shell-Skripten möglich.

  • Die Namen der Skripte sollten eindeutig sein, zum Beispiel Bild rechts drehen.

  • Die meisten Skripte sollten eine graphische Rückgabe ihrer Arbeit liefern. Hierzu eignet sich zum Beispiel Zenity.

  • Unterstützung für mehrere übergebene Dateien, Ordner und Dateien mit Leer- oder Sonderzeichen im Namen

Parameterübergabe an das Skript

Nautilus gibt beim Aufruf eines Skripts einige wichtige Informationen als Umgebungsvariablen an das Skript weiter.

Erweiterte Parameter (Umgebungsvariablen)
NAUTILUS_SCRIPT_SELECTED_FILE_PATHS Pfade der gewählten Dateien, die durch eine neue Zeile getrennt werden (falls lokal)
NAUTILUS_SCRIPT_SELECTED_URISURIs der ausgewählten Dateien. Auch durch eine neue Zeile getrennt
NAUTILUS_SCRIPT_CURRENT_URIURI des aktuellen Orts
NAUTILUS_SCRIPT_WINDOW_GEOMETRYPosition und Größe des aktuellen Fensters

  • Bei lokalen Orten werden zusätzlich die markierten Dateien oder Verzeichnisse als Argumente für das Skript gesetzt. Jedoch werden nur die Dateinamen innerhalb des Ordners, nicht die absoluten Pfade übergeben! Das bedeutet, das Skript wird wie folgt aufgerufen: ~/.local/share/nautilus/scripts/Skriptname <Datei1> <Datei2> ... <DateiN>.

  • Bei Orten im Netzwerk (z.B. per FTP, SSH, SMB) kann NAUTILUS_SCRIPT_SELECTED_FILE_PATHS und auch die Argumentliste leer sein.

Falls Nautilus-Skripte nicht angezeigt werden

Diese Revision wurde am 16. Juli 2020 09:49 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Skript, Nautilus, Dateimanager, GNOME 3, Unity