Unix-Kopierbefehl mit Fortschrittsanzeige, aber nicht so umfangreich wie rsync


14

Ich muss viele Dateien kopieren. Normalerweise verwende ich rsync, weil ich die -aPOptionen übergebe und sehe, (a) wie viele Dateien noch verarbeitet werden müssen und (b) wie viel von jeder einzelnen Datei kopiert wird.

Rsync führt jedoch auch viele Aktionen mit Prüfsummen aus, um zu überprüfen, ob eine Datei kopiert wurde. Allerdings brauche ich das jetzt nicht wirklich. Aber normal cpenthält nicht die oben genannte Anzahl der verbleibenden Dateien, was sehr hilfreich ist.

Gibt es so etwas wie cpden Fortschritt, wie viele Dateien noch vorhanden sind, aber nicht so schwer wie rsync?

Antworten:


21

Sie können rsync mit der Option -W ausführen, wodurch die Prüfsummen deaktiviert werden.


6

Ist dies also ein passender Alias ​​für Ihre Vorschläge?

cp_p() {
    rsync -WavP $1 $2
}

- Verwenden Sie keinen Delta-Übertragungsalgorithmus.
- Ein Archivierungsmodus. -
V Ausführlich. -
P Zeigt den Fortschrittsbalken an und behält Teildateien bei

Eine andere Alternative fand ich an einigen Stellen . erfordert allerdings pv (pipeviewer) paket.

cp_pv() {
    pv -per $1 > $2
}

-p show progress
-e show eta
-r show rate
-n show numeric output

/ edit Ich habe jetzt die obigen Aliase getestet und kann bestätigen, dass sie funktionieren. Es gab einige Tippfehler vor


Dies scheint nur das Kopieren einer Datei in eine benannte Datei und nicht in ein Verzeichnis zu unterstützen. Was ist, wenn ich mehrere Dateien kopieren möchte? Oder ein Verzeichnis?
Einpoklum

Nun, das sind nur Aliase, also können Sie mit den tatsächlichen rohen Befehlen experimentieren, um zu sehen, was für Sie funktioniert. Ich bin sicher, dass rsync Verzeichnisse und andere Pfadangaben unterstützt. Sie können die Aliase einfach anpassen, damit sie für Ihre spezielle Situation geeignet sind. Teilen Sie, wenn es funktioniert. IIRC Ich habe es bisher problemlos mit Verzeichnissen verwendet.
Vijay

3

Sie können einfach die Option -v auf den Befehl cp setzen oder scp für den localhost verwenden


Das -v ist ein guter Anfang, und es ist sehr hilfreich, aber ich möchte mehr Informationen darüber, wie viele Dateien noch übrig sind / kopiert wurden / etc
Rory

2
Dann wollen Sie die Lösung von Stefan Wolff.
egorgry


1

Mit dem Verschlüsselungsaufwand ist es ein Overkill, aber Sie können scplokal Folgendes verwenden:

scp <file-from> <file-to>

Während des Kopierens wird der Fortschritt angezeigt.


Atleast unter OSX scpzeigt standardmäßig keinen Fortschrittsbalken an, da er cpunter der Haube verwendet wird, wenn lokale Dateien betroffen sind.
Srid sagt Reinstate Monica

1

gcpist das nette Werkzeug. Hier haben Sie das PyPI-Paket , das Sie aber auch im Distributionspaket finden (zum Beispiel in debian / ubuntu apt-get install gcp do the job).

Es gibt auch einen schönen Tutorial-Artikel über gcp .

$ gcp -r Solaar / solaar2

Kopieren 7,53 MiB 100% | ############################## | 134,92 M / s Zeit: 00:00:00
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.