Skripte
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
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".
Installation eines Skripts 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.
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".
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.
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_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.
Falls Nautilus-Skripte nicht angezeigt werden¶
Das Skript muss das Dateirecht ausführbar besitzen.
Links¶
Projektseite 🇬🇧