/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 time두 가지 출력 형식이 있으며 이 -p옵션은 그 중에서 선택함을 알려줍니다. 하지만 나는 어떤 옵션도 지정하지 않았습니다! 별칭을 확인했는데 시간에 대한 정보가 없습니다.

이 동작은 매우 예상치 못한 것이며 매우 이상합니다. 누군가 왜 이런 일이 일어나는지 설명할 수 있습니까?

답변1

경로 없이 사용 하는 경우 time내장 쉘에서 제공하는 유틸리티를 사용할 수 있습니다(해당 쉘의 매뉴얼 참조). 경로를 지정할 때 확실히 외부 유틸리티를 사용하고 있습니다.

두 가지의 구현 및 생성되는 출력이 다를 수 있습니다.

관련 정보