Kleines GUI-Werkzeug zum Kopieren von Dateien und Ordnern auf ein Ziel Ihrer
Wahl: Netzwerk-Freigaben (CIFS/NFS/SSHFS/GVfs), USB-Sticks oder
lokale Ordner. Die Kopier-Engine ist rsync (fortsetzbar), die Oberfläche
ist Rust + egui.
Zwei Wege, es zu benutzen:
- Dolphin: Dateien markieren → Kontextmenü → „Dateien übertragen …“
- Eigenständig: Programm starten → Dateien per Drag & Drop hineinziehen oder über „Dateien wählen …“ auswählen
cargo build --release
cp target/release/filetransfer ~/.local/bin/
cp filetransfer-servicemenu.desktop ~/.local/share/kservices5/ServiceMenus/ # Dolphin-Kontextmenü
cp filetransfer.desktop ~/.local/share/applications/ # Starter/KRunner
kbuildsycoca5 # Menü neu einlesenDanach erscheint „Dateien übertragen …“ im Rechtsklick-Menü von Dolphin
und der Eintrag Dateien übertragen im Anwendungs-Starter
(ohne Neustart). Beim ersten Start übernimmt das Programm das zuletzt
verwendete Ziel des Vorgängers nascopy.
- Quellen: von Dolphin (
%F) oder per Drag & Drop / Dateiauswahl. - Zielort wählen (nur per Klick — keine Pfade tippen):
- Seitenleiste: Persönlicher Ordner · USB-Sticks (aus mountinfo) · Netzwerk-Freigaben (CIFS, NFS, SSHFS, GVfs) · „Anderer Ordner …“ für beliebige Pfade
- Brotkrumen-Navigation, Nach oben, Neuer Ordner …, Zuletzt verwendet
- Freier Platz wird angezeigt; nicht erreichbare Ziele führen zu einem Timeout-Hinweis (3 s), das Fenster friert nie ein.
- Konflikte (gleicher Name am Ziel): pro Datei Überspringen /
Überschreiben / Umbenennen / Fortsetzen (bei Teil-Kopie) plus
„Für alle“. Umbenennen Dolphin-Stil:
name (2).ext,name (3).ext… - Übertragung: rsync mit Fortschrittsbalken (grün), Geschwindigkeit,
Datei-Zähler und großem Status-Symbol (Kopieren → Prüfung → grünes
„Fertig“-Häkchen). Abbrechen bleibt fortsetzbar
(
--partial --append-verify). - Verifizieren (optional, in „Einstellungen …“, standardmäßig an): während der Prüfung erscheint ein zweiter, blauer Fortschrittsbalken mit Byte-Fortschritt und einem blauen Häkchen rechts, sobald die Prüfung fertig ist. Jede Datei wird auf beiden Seiten gelesen und per SHA-256 verglichen; fehlgeschlagene Dateien können erneut kopiert werden.
- Zusammenfassung inkl. rsync-Statistik. Der Button „Einstellungen …“ (Fußleiste von Ablage, Zielwahl und Zusammenfassung) regelt die Prüfsummen-Prüfung und „Fenster automatisch schließen“ dauerhaft.
Erkennt die GUI am Ziel einen FAT32-Datenträger (z. B. viele USB-Sticks, Kamera-Karten):
- Dateien über 4 GiB können dort nicht liegen → sie werden beim Kopieren
automatisch in ≤ 4-GiB-Teile zerlegt:
urlaub.mkv.001,urlaub.mkv.002, … - Die Teile werden per SHA-256 geprüft und sind fortsetzbar (unterbrochene Kopie einfach erneut starten → „Fortsetzen“).
- Zum Zusammenführen auf dem Ziel (z. B. am Fernseher/PC mit FAT):
cat 'urlaub.mkv.0'* > 'urlaub.mkv'— der Befehl steht in der Zusammenfassung und lässt sich kopieren. - Auch FAT-illegale Dateinamen (
: * ? " < > | \, Punkt/Leerzeichen am Ende) werden erkannt und automatisch umbenannt (a:b→a_b), inklusive der Dateien innerhalb kopierter Ordner. - exFAT/NTFS haben kein 4-GiB-Limit und werden entsprechend behandelt.
- Löscht nie etwas (kein
--delete). - Verweigert Selbst-Kopier-Schleifen (Quelle im Zielbaum oder umgekehrt).
- Parallele Fenster erlaubt, aber ein Ziel nur einmal gleichzeitig:
jede laufende Übertragung meldet ihr Ziel in
~/.local/state/filetransfer.job.<pid>; dasselbe Ziel in einem zweiten Fenster löst eine Warnung aus (trotzdem möglich). - Schlägt etwas fehl (rsync fehlt, Ziel weg, …): lesbare Fehlermeldung
- Log-Eintrag.
| Pfad | Zweck |
|---|---|
~/.local/bin/filetransfer |
Programm |
~/.local/share/kservices5/ServiceMenus/filetransfer-servicemenu.desktop |
Dolphin-Kontextmenü |
~/.local/share/applications/filetransfer.desktop |
Anwendungs-Starter / KRunner |
~/.local/state/filetransfer.log |
Protokoll (Aufrufe, Entscheidungen, rsync-Exit-Codes, Verify) |
~/.local/state/filetransfer.last |
Zuletzt verwendetes Ziel + Einstellungen (verify, autoclose) |
~/.local/state/filetransfer.job.<pid> |
Ziel-Anmeldung laufender Übertragungen (Ziel-Sperre) |
filetransfer --selftestPrüft progress2-Parser, Namensregeln, Ziel-Anmeldung, und macht eine komplette Kopierrunde (rsync + FAT32-Zerlegung + Fortsetzen + Verify) in /tmp.
- Rechtsklick auf eine Datei → Ablauf komplett durchlaufen.
- Eigenständig starten: Drag & Drop aus Dolphin, dann „Dateien wählen …“.
- Sonderzeichen: Datei mit Leerzeichen, Zielordner
Videos-2023-(SHOTCUT). - Konflikte: Überspringen lässt Zieldatei unangetastet; Überschreiben
ersetzt Inhalt (--checksum); Umbenennen erzeugt
name (2).ext; „Für alle“ wirkt. - Fortsetzen: ≥2-GB-Kopie starten,
pkill -f rsync, erneut starten → matched data. - Verify OK: kopierte Datei stimmt; blauer Prüfbalken füllt sich mit Byte-Zähler, rechts erscheint ein blaues Häkchen.
- Verify FEHLER: Datei am Ziel mit
ddvermurksen → genau diese Datei wird gemeldet. - Abbrechen-Knopf mitten in der Übertragung → partial bleibt, „fortsetzbar“.
- Ziel offline:
sudo umount /mnt/nas→ das Ziel verschwindet aus der Seitenleiste; nach dem Remount erscheint es wieder. - Zwei Fenster auf dasselbe Ziel → Warnung „Ziel wird bereits beschrieben“; unterschiedliche Ziele laufen parallel.
- Einstellungen-Dialog: Haken für Prüfung/autoclose setzen und über
„Übernehmen“ speichern — Datei
filetransfer.lastprüfen. - Log-Kontrolle in
~/.local/state/filetransfer.log.
Rust (stable), keine System-Qt/GTK-Abhängigkeiten (Dateiauswahl läuft über
das XDG-Portal). cargo build --release genügt. Getestet mit
Rust 1.99 / egui 0.36.