sudo를 사용하여 명령 실행 시간을 측정할 때 "time"이 "sudo" 앞에 와야 합니까, 아니면 "sudo" 뒤에 와야 합니까?

sudo를 사용하여 명령 실행 시간을 측정할 때 "time"이 "sudo" 앞에 와야 합니까, 아니면 "sudo" 뒤에 와야 합니까?

사용시 타이밍 명령 실행 시간은 sudo이전 이어야 합니까 , 이후 time여야 합니까 ?sudosudo

time sudo command

또는

sudo time command

어느 것이 맞나요?

출력이 나에게 매우 다른 것 같습니다.

    [esolve@xxt ~]$ sudo time ls
    193.144.21.131_udp.folder  lockfile         run_udp.sh    udp_folder
    50IP.txt                   my_ip_host_site  send_udp_log  udp_receiver
    ip_each_site               raw_udp_client   ssh.log
    0.00user 0.00system 0:00.00elapsed ?%CPU (0avgtext+0avgdata 3088maxresident)k
    0inputs+0outputs (0major+236minor)pagefaults 0swaps


    [esolve@xxt ~]$ time sudo ls        
    193.144.21.131_udp.folder  lockfile         run_udp.sh    udp_folder
    50IP.txt                   my_ip_host_site  send_udp_log  udp_receiver
    ip_each_site               raw_udp_client   ssh.log

    real    0m0.004s
    user    0m0.003s
    sys     0m0.002s
    [esolve@xxt ~]$

왜 이런가요?

답변1

time sudo command셸에 time내장된 명령이 있으면 실행하고, sudo time command항상 time프로그램 검색 경로( ) $PATH에 있는 실행 파일을 실행합니다.

time sudo command명령에 소요된 시간은 포함되지만 sudosudo time command반대의 경우는 포함되지 않습니다.

sudo time command처리 시간은 짧지만 항상 무시할 수 있는 것은 sudo아니며 사용자가 비밀번호를 입력해야 하는 경우 벽시계 시간이 훨씬 길어질 수 있으므로 사용해야 합니다 .

답변2

Debian Stretch에서는 "sudo 시간"이 작동하지 않는 것 같습니다.

# sudo time ls
sudo: time: command not found

# time sudo ls
created

real    0m0,007s
user    0m0,002s
sys     0m0,006s

데비안 확장에서:

# whereis time
time: /usr/include/time.h /usr/share/man/man7/time.7.gz /usr/share/man/man3/time.3am.gz /usr/share/man/man2/time.2.gz

데비안 제시에서:

# whereis time
time: /usr/bin/time /usr/include/time.h /usr/share/man/man3/time.3am.gz /usr/share/man/man1/time.1.gz /usr/share/man/man2/time.2.gz /usr/share/man/man7/time.7.gz

관련 정보