Linux上是否有一个程序可以计算一个程序将产生多少数据?
例如,如果我想备份我的MySQL数据库,我通常会这样做
mysqldump > dumpfile.sql
相反,我想重定向到,/dev/null
但要计算将使用多少磁盘空间,例如
mysqldump | fancy_space_calc_program
输出:
123456789 Bytes would have been used
注意,MySQL备份只是一个例子。我非常了解如何预先估算尺寸,因此请勿对此发表评论。
1
我什至不认为你真的可以做一个。在特定情况下可以,但不能用于一般用途,因为您可以估算某些应用程序是否调用某个服务器并从该服务器下载数据-您不可能在外部应用程序中估算此类情况。因此,这将是每个应用程序-正如您所写的那样,您已经对MYSQL有所了解-那里没有解释,但是其他应用程序-每个应用程序,没有任何通用工具可以正确地进行这种预测。
—
Drako
我希望您认识到,进行估计的任何尝试都需要实际运行该程序,并在将其发送到安全的地方时观察输出。如果程序对别的东西有某种不可逆的影响,那么这将是不可能的,因此您只能运行一次而不会产生意想不到的副作用。另一个问题是,如果程序从更改的输入中获取其输出,则下一次运行将创建另一个(不同大小)输出文件。最后但并非最不重要的:磁盘空间<>(输出字节)。各种文件系统的簿记开销也不同。
—
托尼
是的,我很清楚。对我来说仍然足够好。
—
fantPant'17
@Drako您可以使用一种通用的方法来测量程序的文本输出。那不需要是每个应用程序(例如,请参见已接受的答案)。文本输出在以后的运行中是否会可靠地相同是特定于应用程序的,但这并不妨碍您以常规方式测量输出。大概OP和其他任何尝试测量输出的人都只会在数据对于任何给定应用有意义的情况下才这样做。
—
乔恩·本特利
@JonBentley我从未告诉过你它不能拥有它,请更仔细地阅读:“正如我所写的一般预测不会精确甚至接近:)”,现在想象我的应用程序运行后将检查自身,插件的更新,等等,并将从i-net下载x量的数据并将其存储在您的硬盘上;不知道我的应用程序的情况下,如何使用通用工具提前进行精确测量,运行该应用程序后需要多少存储空间?您仍然可以通过可接受的答案来做出最佳猜测,甚至在很多情况下都非常准确。
—
Drako