是否可以查看 cp 速度和复制百分比?

是否可以查看 cp 速度和复制百分比?

我在使用 nautilus 复制大文件时遇到问题(它被卡住)。我需要复制,使用cp.我想知道是否有任何参数显示复制的百分比以及传输速度。

答案1

rsync版本 3.0.9+ 有一个--progress标志,显示每个文件的进度:

rsync --progress SOURCE DEST

rsync任何版本都有一个--info=progress2标志,显示总体百分比:

rsync --info=progress2 SOURCE DEST

答案2

如果您允许其他工具,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提供剩余时间的估计。

另一个解决方案(如霜舒茨在评论中提到的)是使用 rsync 和选项--progress

rsync --progress -a sourceDirectory destinationDirectory

答案3

rsync最适合在复制过程中显示进度。

前任:

rsync -avh --progress sourceDirectory destinationDirectory

答案4

正如其他答案中所解释的, cp 不提供该功能。然而,进度(以前称为简历)是一个小工具,对于提供这个缺失的功能非常有帮助。

该工具可以被描述为 Tiny Dirty Linux Only* C 命令,它查找当前在系统上运行的 coreutils 基本命令(cp、mv、dd、tar、gzip/gunzip、cat...)并显示复制的百分比数据。

过去几个月我一直在使用它,它很稳定。

相关内容