[[Vorlage(Baustelle, 1.1.2018, noisefloor)]] [[Vorlage(Getestet, xenial)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/terminal.png, 36)]] Die Programme pycp und pymv kopieren bzw. verschieben Dateien oder ganze Verzeichnisse, bieten aber - im Gegensatz zu den "klassischen" Shellbefehlen [:cp:] und [:mv:] - eine (farbige) Fortschrittsanzeige als auch eine Angabe der Transfergeschwindigkeit (in M/s) Im Hintergrund arbeiten bei Programme mit den Bordmitteln von Python, es wird nicht auf die Shellbefehle zurück gegriffen. = Installation = pycp und pymv benötigen Python 3.5 oder neuer, welches aber bei Ubuntu 16.04 und neuer standardmäßig installiert ist. Beide Programme sind nicht in den Paketquellen vorhanden, die aktuellste Version kann aber über [:pip:] installiert werden[1]. Wer eine systemweite Installation wünscht muss den folgenden Befehl mit Root-Rechten ausführen[2]: {{{#!vorlage Befehl pip3 install pycp }}} So werden gleichzeitig pycp und pymc installiert, eine getrennte Installation ist nicht möglich. [[Vorlage(Fremd, Software)]] = Nutzung = Die allgemeine Syntax lautet: {{{#!vorlage Befehl pycp [OPTIONEN] QUELLE ZIEL pymv [OPTIONEN] QUELLE ZIEL }}} `QUELLE` kann dabei eine Datei oder ein Verzeichnis sein, `ZIEL` muss ein existierendes Verzeichnis sein. Beide Befehl arbeiten rekursiv, d.h. sind in `QUELLE` noch Unterverzeichnisse vorhanden, werden diese mit kopiert bzw. verschoben. Dieses Verhalten lässt sich nicht ändern. Existiert eine Datei in `ZIEL` bereits, wird diese ohne Rückfrage überschrieben. Dies kann man über die entsprechende Option beim Befehlsaufruf ändern. Beide Befehle kennen die selben Optionen: {{{#!vorlage Tabelle <-2 rowclass="titel">Optionen von pycp und pymv +++ Option Erklärung +++ `-i`, `--interactive` Es wird nachgefragt, ob eventuell bereits vorhandene Dateien überschrieben werden dürfen. +++ `-s`, `--safe` Eventuell vorhandene Dateien werden nie überschrieben. +++ `-f`, `--force` Eventuell vorhandene Dateien werden immer ohne Rückfrage überschrieben. Dies ist die Voreinstellung. +++ `-p`, `--preserve` Dateirechte und Zeitstempel werden beim Kopieren / verschieben beibehalten. +++ `-g`, `--global-pbar` Es wird nur eine Fortschrittsanzeige für alle Dateien angezeigt, nicht eine pro Datei. +++ `--ignore-errors` Auftretende Fehler werden ignoriert }}} == Beispiele == Der folgende Befehl verschiebt die Datei '''m_a_m.pdf''' aus dem aktuellen Verzeichnis nach '''/home/BENUTZER/Schreibtisch''': {{{#!vorlage Befehl pymv m_a_m.pdf /home/BENUTZER/Schreibtisch/ }}} {{{ [1/1]m_a_m.pdf => /home/BENUTZER/Schreibtisch/m_a_m.pdf 100% [############################################] - 372.68 M/s - Time : 00:00:00 }}} Der folgende Befehl kopiert alles Dateien mit den Endung '''.xcf''' vom aktuellen Verzeichnis nach '''/home/BENUTZER/Sicherung''' kopiert, eventuell bereits vorhandene Dateien werden nicht überschrieben: {{{#!vorlage Befehl pycp -s *.xcf /home/BENUTZER/Sicherung/ }}} {{{ [1/2]pinguine.xcf => /home/BENUTZER/Sicherung/pinguine.xcf Warning: Skipping /home/BENUTZER/Sicherung/pinguine.xcf - 0.00 B/s - ETA : --:--:-- [2/2]tasse.xcf => /home/BENUTZER/Sicherung/tasse.xcf 100% [############################################] - 828.41 M/s - Time : 00:00:00 }}} = Links = * [github:dmerejkowsky/pycp:Githunb-Seite] des Projekts ##tag: Shell, Python