为运行命令提供进度指示器是否违反 Linux 精神?

为运行命令提供进度指示器是否违反 Linux 精神?

可能的重复:
为什么cp没有像wget那样有进度条?

最近我一直在Linux中处理相当大的文件。我经常使用sedcutsortuniqawk和等命令perl来切片、切块和查看这些大文件的内容。我通常不确定这样的操作是否会在几秒、几小时、几天或“绝不”。

其他平台(例如 Windows、Mac OS X 和 Internet)会快速向用户显示进度条指示器,以显示工作或上传的进度,甚至可能告诉用户还剩多少时间。

对于上面的大多数例子来说,通过主动思考命令到底如何修改文件,然后检查磁盘上输出的当前大小,可以猜测当前进度。或者也许可以通过观察磁盘上文件大小的变化率。但对于像这样的命令,sort -d -u big_file > output_file似乎没有办法知道操作是在一分钟还是一年内完成。

这个缺失的功能是故意的吗?有没有一种linux方式可以做到这一点?这种需求通常可以通过较小的文件来消除吗?

会一个真实的haxor 只是通过直接从文件中扫描值来直观地了解这些操作的进度.pid

答案1

是的,这违背了 UNIX 精神。通常,Unix 命令成功时不返回任何输出;他们只在错误时提供输出。这有利于自动化;脚本可以将命令的任何输出视为错误报告并将其记录或邮寄给系统管理员。这就是 cron 守护进程的工作原理。

请记住,Unix 被设计为自动化,而不是让系统管理员悬停在控制台上,观察发生的一切。

也就是说,许多实用程序都有等效的 -verbose (或 -v 或 --verbose)标志,以提供更多输出。例如,rsync 有 --progress 标志。还有其他工具将检测它们是否在交互式会话或脚本中使用,并相应地调整输出。 Wget 为交互式会话提供一种进度指示器,为脚本提供另一种进度指示器,但可以完全静音。

还有一些实用程序(例如酒吧,德巴,光伏发电),它们被设计用作数据传输中的管道并指示进度。在需要时添加它们。

答案2

pv是你的朋友。将其插入到您想要查看进度的任何位置。

喜欢

pv big_file | sort ...

相关内容