Skripte
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 24.04 Noble Numbat
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
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".
Skript installieren¶
Installation für einen Benutzer¶
Als Archiv vorliegend¶
Zunächst muss das Skript nach ~/.local/share/nautilus/scripts/ entpackt[4] und ausführbar gemacht[5] werden.
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.
Installation 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.
Skript benutzen¶
Man arbeitet ganz normal mit dem Dateimanager und
wählt entweder durch einen Klick mit der rechten Maustaste
eine Datei aus,
oder man markiert zuerst mit den Tasten Strg +
mehrere Dateien bzw. Ordner und klickt danach mit der rechten Maustaste
einen ausgewählten Eintrag an.
In dem sich öffnenden Menü wählt man "Skripte → SKRIPTNAME". Je nach Version von Nautilus kann man dabei die Menüpunkte durch reines Zeigen aktivieren oder man muss doch klicken.
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. Das ist noch nicht das, was man erreichen wollte.
Wenn man das Terminal im selektierten Ordner öffnen will, muss man die an das Skript übergebenen Informationen auswerten:
1 2 3 4 5 | #! /bin/bash -e for Ordner do test -d "$Ordner" || continue gnome-terminal --working-directory="$Ordner" done |
Wenn man mehrere Ordner auswählt, öffnet das Skript auch mehrere Terminal-Fenster. In dieser verbesserten Variante werden die ausgewählten Dateien als Programmargumente $1
, $2
… übergeben, das nächste Beispiel verwendet eine andere Methode. Außerdem prüft das Skript, ob es sich um einen Ordner handelt und ignoriert anderenfalls den Namen.
In den offiziellen Paketquellen enthalten ist das Paket nautilus-extension-gnome-terminal, das die gleiche Funktionalität erfüllt.
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/scripts/'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.
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.
Allgemeine Hinweise¶
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_URIS | URIs der ausgewählten Dateien. Auch durch eine neue Zeile getrennt |
NAUTILUS_SCRIPT_CURRENT_URI | URI des aktuellen Orts |
NAUTILUS_SCRIPT_WINDOW_GEOMETRY | Position 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.
Problembehebung¶
Skript wird nicht angezeigt¶
Das Skript muss das Dateirecht ausführbar besitzen.
Skript wird nicht ausgeführt¶
In der Regel sind das Syntaxfehler im Skript.
Man starte das Skript im Terminal[2]. Wenn eine Fehlermeldung erscheint, verbessere man den Quelltext bis das Programm fehlerfrei durchläuft.
Links¶
Projektseite 🇬🇧