Answers:
$_扩展到./access.log(最后执行的命令的最后一个参数),而不是./data/log.sample。
因此,您实际上正在看到的行数./access.log。
重定向(>)不是head命令的一部分,因为它head甚至在命令启动之前就由外壳程序完成。因此,有了$_你就会得到./access.log。
来自man bash:
($ _,下划线。)在shell启动时,设置为用于调用在环境或参数列表中传递的正在执行的shell或shell脚本的绝对路径名。随后,在扩展后,扩展到上一个命令的最后一个参数。还设置为用于调用每个执行的命令的完整路径名,并将其放置在导出到该命令的环境中。检查邮件时,此参数保存邮件文件的名称。