可能重复: 为什么cp没有像wget这样的进度条?
最近,我一直在处理Linux中相当大的文件。我经常使用诸如sed、cut、sort、uniq、awk和perl之类的命令来切片、骰子和查看这些大型文件的内容。我通常不确定这样的操作是否会在几秒钟、几个小时、几天内完成,还是“永远不会”。
其他平台,如Windows、Mac和Internet,可以快速地向用户显示进度条指示符,以显示工作或上传的进度,甚至还可以告诉用户还有多少时间。
使用以上大多数示例,通过积极考虑命令是如何修改文件的,然后检查磁盘上输出的当前大小,可以猜测当前的进度。或者通过观察磁盘上文件大小的变化速度。但是,对于sort -d -u big_file > output_file这样的命令,似乎没有可能知道操作将在一分钟内还是一年内完成。
这个缺失的特征是故意的吗?有linux的方法吗?这种需要通常只是被较小的文件排除了吗?
一个真正的haxor仅仅是通过直接从.pid文件中扫描值来直观地知道这些操作的进展吗?
发布于 2012-10-08 22:28:21
是的,这违背了UNIX的精神。作为一项规则,Unix命令在成功时不返回输出;它们只在错误时提供输出。这对自动化很有好处;脚本可以将命令中的任何输出作为错误报告处理,并将其记录下来或发送给sysadmin。这就是cron守护进程的工作方式。
请记住,Unix的设计是自动化的,而不是让sysadmin在控制台上盘旋,监视发生的一切。
尽管如此,许多实用程序都具有与-verbose (或-v )标志相当的功能,以提供更多的输出。例如,rsync有--进度标志。还有一些工具将检测它们是在交互会话中使用,还是在脚本中使用,并相应地调整输出。Wget为交互式会话提供了一种进度指示,为脚本提供了另一种,但可以完全沉默。
还有几种实用工具(例如bar、dbar、pv)被设计成用于数据传输中的管道,并表明进展情况。把他们加到需要的地方。
发布于 2012-10-08 22:21:04
pv是你的朋友。将它插入您想要看到进展的任何地方。
喜欢
pv big_file | sort ...https://unix.stackexchange.com/questions/50279
复制相似问题