Por que a execução de 'time' e '/ usr / bin / time' fornece resultados diferentes?

2

Por que a execução de time e /usr/bin/time gera resultados diferentes?

/ usr / bin / time

thomas@tbdesktop:~$ /usr/bin/time -f "Elapsed time:%E" wc /etc/hosts
  9  25 224 /etc/hosts
Elapsed time:0:00.04

tempo

thomas@tbdesktop:~$ time -f "Elapsed time:%E" wc /etc/hosts
-f: command not found

real    0m0.079s
user    0m0.052s
sys 0m0.024s

Meu caminho é o seguinte. Até onde eu posso ver, existe apenas um executável time no caminho.

thomas@tbdesktop:~$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
thomas@tbdesktop:~$ find / -name time 2> /dev/null
/sys/devices/pnp0/00:03/rtc/rtc0/time
/sys/module/printk/parameters/time
/var/lib/dkms/virtualbox/4.1.12/build/common/time
/var/lib/doc-base/documents/time
/usr/src/linux-headers-3.2.0-30/kernel/time
/usr/src/linux-headers-3.2.0-31-generic/include/config/sr/report/time
/usr/src/linux-headers-3.2.0-31-generic/include/config/generic/time
/usr/src/linux-headers-3.2.0-31-generic/kernel/time
/usr/src/virtualbox-4.1.12/common/time
/usr/src/linux-headers-3.2.0-29/kernel/time
/usr/src/linux-headers-3.2.0-30-generic/include/config/sr/report/time
/usr/src/linux-headers-3.2.0-30-generic/include/config/generic/time
/usr/src/linux-headers-3.2.0-30-generic/kernel/time
/usr/src/linux-headers-3.2.0-29-generic/include/config/sr/report/time
/usr/src/linux-headers-3.2.0-29-generic/include/config/generic/time
/usr/src/linux-headers-3.2.0-29-generic/kernel/time
/usr/src/linux-headers-3.2.0-31/kernel/time
/usr/bin/time
/usr/share/doc/time
/usr/share/doc-base/time
thomas@tbdesktop:~$ 
    
por Thomas Bratt 29.09.2012 / 21:13

1 resposta

4

Porque time e /usr/bin/time executam código diferente. Para determiná-lo, faça o seguinte:

type time

Ele mostrará a você que:

time is a shell keyword

Portanto, não é executado /usr/bin/time se você simplesmente chamar time .

Eles são coisas diferentes ...

    
por hytromo 29.09.2012 / 21:20