有没有办法找出程序从文件中读取的位置?似乎可以使用strace或dtrace?
为了澄清问题并提供动力,假设我有一个 10GB 的日志文件,并且正在计算唯一行的数量:
$ cat log.txt | sort | uniq | wc -l
我可以检查文件cat
当前的位置,有效地给出命令的进度吗?使用lsof
,我似乎无法获得上次读取文件的偏移量,我认为这可以解决问题:
$ lsof log.txt
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
cat 16021 erik 3r REG 0,22 13416118210 1078133219
编辑:我很抱歉,我给出的例子太狭窄了,没有抓住重点。理想情况下,对于任意程序,我想查看文件读取的位置(无论管道如何)。