/ usr / bin / timeへのフルパスが出力に影響するのはなぜですか?

/ usr / bin / timeへのフルパスが出力に影響するのはなぜですか?

私は非常に単純なコマンドを実行しています。

[tester@centos-lvm ~]$ time cal > /dev/null

real    0m0.001s
user    0m0.000s
sys     0m0.001s

timeただし、実行可能ファイルのフルパスを指定すると、他の結果が表示されます。

[tester@centos-lvm ~]$ /usr/bin/time cal > /dev/null
0.00user 0.00system 0:00.00elapsed ?%CPU (0avgtext+0avgdata 928maxresident)k
0inputs+0outputs (0major+272minor)pagefaults 0swaps

time私は(パスなしで)次を実行すると、/usr/bin/timeこれが実際に実行されると思います。

[tester@centos-lvm ~]$ which time
/usr/bin/time

man time2つの出力形式があり、この-pオプションはそれらの中から選択したことを伝えます。しかし、私はオプションを指定していません!エイリアスを確認しましたが、時間に関する情報はありません。

この動作は非常に予期せず、非常に奇妙です。誰かがなぜこれが起こるのか説明できますか?

答え1

パスなしで使用する場合は、組み込みtimeシェルが提供するユーティリティを使用できます(該当するシェルのマニュアルを参照)。パスを指定するときは間違いなく外部ユーティリティを使用しています。

2つの実装と生成される出力は異なる場合があります。

関連情報