Cp

是否可以看到 cp 速度和複製百分比?

  • October 8, 2021

使用 nautilus 複製大文件時遇到問題(卡住了)。我需要複製,使用cp. 我想知道是否有任何參數顯示複製的百分比以及傳輸速度。

rsync有一個名為的標誌progress2,它顯示了總體百分比:

rsync --info=progress2 source dest

正如@AdrianTNT 在評論中指出的那樣,至少從rsync版本 3.0.9 開始,該標誌現在只是--progress,因此該命令可以簡化為:

rsync --progress source dest

如果您允許使用其他工具,cp那肯定是可能的。對於單個文件,您可以使用pv. 這是一個提供漂亮統計數據的小工具。

pv inputfile > outputfile

如果您有多個文件或目錄,則可以使用 tar:

tar c sourceDirectory | pv | tar x -C destinationDirectory

您可以將其包裝在 shell 函式中。輸入更少,並且您獲得的語義接近cp. 這是一個非常簡單(而且不是防錯!)的功能:

cpstat () {
 tar c "$1" | pv | tar x -C "$2"
}

請注意,某些版本tar不支持上述語法(例如 Solaris tar),您必須使用以下變體:

cpstat () {
 tar cf - "$1" | pv | (cd "$2";tar xf -)
}

你這樣稱呼它

cpstat sourceDirectory destinationDirectory

您可以進一步增強它,以便pv提供剩餘時間的估計。

另一種解決方案(如評論中提到的frostschutz)是使用帶有--progress選項的rsync:

rsync --progress -a sourceDirectory destinationDirectory

引用自:https://unix.stackexchange.com/questions/65077