フォーマットオプションで「時間」を呼び出す

フォーマットオプションで「時間」を呼び出す

私はコマンドの実行時間を測定し、timeコマンドの奇妙な動作を確認したいと思います。

timeマニュアルページの例で述べたように、-fまたはオプションを使用して呼び出したときにエラーが--format発生しました。実行時間を測定する命令だcommand not foundと思いました...-f

user@laptop:~$ time -f '%e' sleep 1
-f: Befehl nicht gefunden.

次に、同じ行をもう一度呼び出してtime。結果が変更され、期待どおりに機能しました(wtf?)。

user@laptop:~$ /usr/bin/time -f '%e' sleep 1
1.00

今混乱しています...which助けることはできません:

user@pc:~$ which time
/usr/bin/time

そして...このオプションを使用しないと、フルパスがなくてもうまくいきます。

user@laptop:~$ time sleep 1

real    0m1.003s
user    0m0.001s
sys 0m0.002s

オプションを指定したい場合は、コマンドを正しく使用するにはどうすればよいですか?フルパスを使用するとうまくいくようですが、問題がある(または私が理解していないもの)の信頼できない副作用のように見えますか?

編集:私はUbuntu 14.04 LTSを使用しています(信頼できる)

答え1

Bashという組み込みコマンドがありますtime。したがって、入力したばかりtime。したがって、マンページで説明されているオプションを使用するには、組み込みシェルではなくそのプログラムを呼び出す必要があります。これを達成する1つの方法は、フルパスを使用することです。-fman time-f/usr/bin/time

(IMHO これはbashで本当に醜い)

詳しくは、質問の下のリンクをご覧ください。

答え2

Borisの回答で情報を表示する方法を追加すると思いました。

ちょうどまた時間が混乱していたかのように。

bashのtypeあなたの友人です。私はそれをもっと使うべきであることを本当に覚えておくべきです。古いcsh習慣は死ににくいです。

which -a time  
/usr/bin/time

type time 
time is a shell keyword

type times  
times is a shell builtin

type nslookup  
nslookup is /usr/bin/nslookup

関連情報