为什么 `xargs head` 打印文件名?

Jam*_*son 3 linux shell xargs

给定两个文件, a.txt内容为:A1b.txt内容为:B1

执行时printf "a.txt\nb.txt" | xargs head -1

我希望它输出

A1
B1
Run Code Online (Sandbox Code Playgroud)

但它输出

==> a.txt <==
A1

==> b.txt <==
B1
Run Code Online (Sandbox Code Playgroud)

为什么它输出文件名?以及如何禁用文件名的输出?

Phi*_*oss 6

head正在使用多个参数执行。这会导致输出文件名。从头手册页

如果有多个文件,请在每个文件之前添加一个给出文件名的标头。

可以使用以下选项抑制标头--quiet

printf "a.txt\nb.txt" | xargs head -1 --quiet
Run Code Online (Sandbox Code Playgroud)