c shell에는 repeat라는, 특정 커맨드를 반복해서 실행 할 수 있는 명령어가 있다(아마, 내장 커맨드였던가?). 꽤 유용하게 썼던 기억이 있다.
리눅스에도 비슷한 커맨드가 있는데, 바로 watch다.
사용법은 간단하다.
예를 들어서, 대용량 화일을 복사한다고 하자. 그러면 얼마나 복사되었는지 확인하려고, ls 나 df 같은 커맨드를 주기적(?)으로 실행하게 될 것이다. 그건 너무 귀찮지 않은가? 그럴 때 바로 watch를 사용한다.
#watch -d -n 5 ls -alh
Every 5.0s: ls -alh Tue Mar 20 01:18:04 2012
total 65G
drwxr-xr-x 2 root root 4.0K 2012-03-15 18:31 .
drwxr-xr-x 5 root root 4.0K 2012-03-20 00:29 ..
-rwxr-xr-x 1 root root 24G 2012-03-20 00:47 cent57.vimg
-rwxr-xr-x 1 root root 12G 2012-03-19 23:20 solaris10.vimg
-rwxr-xr-x 1 root root 12G 2012-03-10 19:22 ubuntu.vimg
-rwxr-xr-x 1 root root 24G 2012-03-20 00:57 win7.vimg
-rwxr-xr-x 1 root root 22G 2012-03-20 00:29 xp.vimg
-d 옵션은 이전과 다른 부분이 있다면 하이라이트로 표시해주는 옵션이며, -n 5 는 5초 간격으로 명령어(ls -alh)를 실행하라는 뜻이다.
단점이 있다면, 사용자 인터럽트를 받을때 까지 계속 실행된다는 것이다. 즉, 중지는 사용자가 직접 해야한다는 뜻.