我在使用 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...)并显示复制的百分比数据。
过去几个月我一直在使用它,它很稳定。