[[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 beide 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 seit Ubuntu 16.04 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