Du kannst ein Rohr mit pv -qL
drosseln (oder cstream -t
bietet ähnliche Funktionen)
tar -cf - . | pv -q -L 8192 | tar -C /your/usb -xvf -
-q
entfernt stderr-Fortschrittsberichte.
Die -L
Grenze ist in Bytes.
Mehr über --rate-limit/-L
Flagge von man pv
:
-L RATE, --rate-limit RATE
Limit the transfer to a maximum of RATE bytes per second.
A suffix of "k", "m", "g", or "t" can be added to denote
kilobytes (*1024), megabytes, and so on.
Diese Antwort verwies ursprünglich auf throttle
aber dieses Projekt ist nicht mehr verfügbar und ist daher aus einigen Paketsystemen herausgerutscht.
Statt cp -a /foo /bar
Sie können auch rsync
verwenden und begrenzen Sie die Bandbreite nach Bedarf.
Ab dem rsync
's Handbuch:
--bwlimit=KBPS
E/A-Bandbreite begrenzen; KByte pro Sekunde
Der eigentliche Befehl, der auch den Fortschritt anzeigt, würde also so aussehen:
rsync -av --bwlimit=100 --progress /foo /bar
Ich würde davon ausgehen, dass Sie versuchen, andere Aktivitäten nicht zu stören. Neuere Linux-Versionen enthalten ionice
wodurch Sie die Planung von IO steuern können.
Neben dem Zulassen verschiedener Prioritäten gibt es eine zusätzliche Option, um IO auf Zeiten zu beschränken, in denen die Festplatte ansonsten im Leerlauf ist. Der Befehl man ionice
zeigt die Dokumentation an.
Versuchen Sie, die Datei mit einem Befehl wie dem folgenden zu kopieren:
ionice -c 3 cp largefile /new/directory
Wenn sich die beiden Verzeichnisse auf demselben Gerät befinden, können Sie feststellen, dass das Verknüpfen der Datei das tut, was Sie möchten. Wenn Sie zu Sicherungszwecken kopieren, verwenden Sie diese Option nicht. ln
ist extrem schnell, da die Datei selbst nicht kopiert wird. Versuchen Sie:
ln largefile /new/directory
Oder wenn Sie nur von einem Verzeichnis auf einem anderen Gerät darauf zugreifen möchten, versuchen Sie Folgendes:
ln -s largefile /new/directory