unbuffer 명령을 time 명령과 함께 사용할 때 이상한 점을 발견했습니다. 여기서는 내 시스템에서 특정 파일을 찾는 데 시간이 얼마나 걸리는지 확인하고 싶습니다.
time find . -name unixstuff
출력은 다음과 같습니다
./Documents/CProgramming/2031/unix/Awk/unixstuff
0.011u 0.173s 0:00.38 47.3% 0+0k 0+0io 0pf+0w
하지만 이 명령 출력 전에 unbuffer를 작성하면 다음과 같습니다.
./Documents/CProgramming/2031/unix/Awk/unixstuff
0.01user 0.17system 0:00.38elapsed 47%CPU (0avgtext+0avgdata 4656maxresident)k
0inputs+0outputs (0major+338minor)pagefaults 0swaps
0.17s가 0.17 시스템으로 확장되고 다른 속기 확장이 발생했습니다. 이러한 행동 변화가 발생하는 이유를 알고 싶습니다. 나는 내 파이프에서 예측할 수 없는 출력을 원하지 않습니다.
답변1
time
첫 번째 명령의 이 셸 키워드이기 때문입니다 . time
두 번째 명령의 는 실행 파일입니다 . 다음 type
의 출력을 참조하세요 time
.
$ type -a time
time is a shell keyword
time is /usr/bin/time
명령에는 unbuffer
쉘 키워드가 아닌 인수로 프로그램이 필요합니다. 쉘 키워드를 해석할 수 없습니다. 이는 bash
내부 키워드입니다.
그리고 여러분이 보는 출력의 차이점은 두 가지 명령 구현의 차이점입니다 time
. 두 번째 명령과 동일한 동작을 수행하는 첫 번째 명령에서 절대 경로를 사용하십시오.
/usr/bin/time find . -name unixstuff