전체 명령 경로를 지정하지 않고 상세 모드에서 time 명령을 사용할 수 없는 이유는 무엇입니까?

전체 명령 경로를 지정하지 않고 상세 모드에서 time 명령을 사용할 수 없는 이유는 무엇입니까?

주어진...

~$ which time
time is a shell keyword
time is /usr/bin/time

이것이 작동하는 이유는 무엇입니까?

~$ /usr/bin/time --verbose ./some_script.sh 
Command being timed: "./some_script.sh"
User time (seconds): 0.00
System time (seconds): 0.01
Percent of CPU this job got: 51%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.03
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 4572
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 1
Minor (reclaiming a frame) page faults: 1548
Voluntary context switches: 3
Involuntary context switches: 7
Swaps: 0
File system inputs: 48
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0

왜 안되나요?

~$ time --verbose ./some_script.sh 
--verbose: no se encontró la orden

real    0m0.124s
user    0m0.101s
sys 0m0.022s

답변1

경로를 지정하지 않고 명령을 호출하면 해당 명령 대신 동일한 이름을 가진 다른 쉘 별칭, 함수 및 내장 기능이 호출됩니다. 이 행동은POSIX에 의해 정의됨.

외부 명령을 호출하려면 time다음을 사용할 수 있습니다.주문하다:

command time --verbose cmd

답변2

/usr/bin/time과 셸에 내장된 시간은 완전히 다른 구현이기 때문입니다. 분명히 help time셸에 내장된 사용법을 얻으려면 실행하세요 .man time/usr/bin/time

관련 정보