![如何在 GNU 发行版上测量或跟踪命令的进度?](https://linux22.com/image/1239254/%E5%A6%82%E4%BD%95%E5%9C%A8%20GNU%20%E5%8F%91%E8%A1%8C%E7%89%88%E4%B8%8A%E6%B5%8B%E9%87%8F%E6%88%96%E8%B7%9F%E8%B8%AA%E5%91%BD%E4%BB%A4%E7%9A%84%E8%BF%9B%E5%BA%A6%EF%BC%9F.png)
如果我跑
cp file1 file2
我希望能够跟踪它的进度。有没有什么命令可以实现这一点?
rsync --progress
有这个,但是是否有通用的,可用于“任何”命令的东西?
答案1
您可以使用它pv
来查看任何可以通过管道传输数据的命令的进度。
例如http://www.catonmat.net/blog/unix-utilities-pipe-viewer/解释一下。但是,这对 cp 不起作用,因为它不通过管道运行。
除此之外,据我所知没有通用机制。这很困难,因为“进度”对不同的命令可能有不同的含义。
顺便说一句,cp
有一个选项-v
可以列出复制的文件,可以让您大致了解其进度。
编辑:
虽然它可能不会直接回答您的问题:您也可以使用图形文件管理器。大多数图形文件管理器在复制/移动文件时都会提供一个很好的进度条(例如 KDE 的 konqueror 就是这样的)。
答案2
尝试附加--verbose
到您感兴趣的命令,这通常会产生有关进度的更多信息。
答案3
(也许不是你想要的,因为它不适用于任何命令,但)来获取进度表cp,我有时会滥用SCP:
scp localhost:/path/to/source_file /path/to/destination
您将需要在源或目标上使用“localhost:”前缀,以便SCP不会回到标准cp。