背景环境
centos7.9 cp文件时无进度显示
解决办法
默认centos中的cp 命令本身并不提供直接查看复制进度的选项。可以借助其他工具或命令来查看。
1. rsync
一种常见的方法是使用 rsync 命令代替 cp 命令进行复制操作,并使用 --progress 参数来显示复制进度。rsync 命令具有类似 cp 的功能,但提供了更多的选项。
以下是使用 rsync 命令查看复制进度的示例:
rsync --progress /path/source /path/destination
源路径 目标路径
2. pv
另一种方法是使用 pv(Pipe Viewer)工具来监视 cp 命令的进度。 首先,确保您已经安装了 pv 工具。
yum install pv -y
然后,使用管道 (|) 将 cp 命令与 pv 命令结合使用,以便将复制的数据传递给 pv 命令。
以下是使用 pv 工具查看 cp 命令进度的示例:
cp /path/source /path/destination | pv -lep -s 23000G > /dev/null
源路径 目标路径 源目录大小,整数
执行命令后,pv 将显示复制的进度信息,包括已复制的数据量和已经过的时间。如下:
3. rsync与pv速度对比
对于小文件比较多的情况,cp 命令通常比 rsync 命令更快。这是因为 cp 命令在执行复制操作时只需处理源文件和目标文件,而 rsync 命令需要进行额外的数据传输和比较操作,以确保源文件和目标文件的一致性。
rsync 命令的优势在于它可以进行增量复制,即只复制发生更改的文件或部分数据,从而减少了复制的数据量和时间。这使得 rsync 在需要同步大型文件夹或网络上传输文件时非常有用。
然而,对于小文件数量较多的情况,cp 命令往往更快,因为它不涉及额外的比较和传输操作,只需简单地复制文件即可。当文件的数量较大且每个文件的大小较小时,cp 命令往往比 rsync 命令更高效。
综上所述,在处理小文件数量较多的情况下,使用 cp 命令可能会更快。然而,对于大型文件夹或需要增量复制的情况,rsync 命令可能更适合。最好根据具体情况进行测试和比较,以确定最合适的方法。