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?

Rory
quelle

Antworten:

21

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

Stefan Wolff
quelle
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

Vijay
quelle
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

eifrig
quelle
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.

Labyrinth
quelle
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
Spinus
quelle