watch 명령어: 사용법과 -n 간격, -d 강조, 출력이 바뀌면 끝내기

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)
테스트 환경RHEL 계열AlmaLinux 9.8procps-ng 3.3.17root 계정Debian 12 · procps-ng 4.0.2 일반 계정
프로세스 · 작업 예약 명령어watch위치/usr/bin/watch2026-11-05 확인
명령 출력 변화 확인 명령어

watch 명령어는 지정한 명령을 2초마다 다시 실행해 그 출력을 터미널 화면 전체에 새로 그리는 리눅스 명령어입니다. AlmaLinux 9 서버에서 다른 창으로 파일을 바꾸며 watch로 지켜본 결과, -d 옵션은 바뀐 글자를 강조했고 -g 옵션은 출력이 바뀐 뒤 watch를 끝냈습니다.

아래 출력은 AlmaLinux 9.8 서버(root 계정)의 작업 폴더에서 실행한 결과이고, Debian 12 서버에서는 버전만 확인했습니다. 화면 맨 위 머리 줄의 호스트 이름은 예시 값 server1로 바꿨고, 시각은 UTC로 출력했습니다.

1️⃣ watch 명령어 사용법

  • ↪️ 기본 2초 간격과 Ctrl+C로 끝내기

watch 뒤에 다시 실행할 명령을 적으면, 옵션이 없을 때는 2초마다 그 명령을 실행하고 화면을 새 출력으로 바꿉니다. date를 지켜보자 화면 맨 위에 머리 줄이 나오고, 한 줄을 비운 뒤 date의 출력이 이어졌습니다.

watch date
Every 2.0s: date                                                   server1: Thu Oct 29 02:28:07 2026

Thu Oct 29 02:28:07 UTC 2026

머리 줄 왼쪽은 갱신 간격과 실행 중인 명령이고, 오른쪽은 호스트 이름과 마지막으로 실행한 시각입니다. 2초 뒤 같은 화면을 다시 확인하자 머리 줄의 시각과 date 출력이 함께 바뀌어 있었습니다.

Every 2.0s: date                                                   server1: Thu Oct 29 02:28:09 2026

Thu Oct 29 02:28:09 UTC 2026

watch는 직접 끝낼 때까지 계속 실행되므로 Ctrl+C로 끝냅니다. Ctrl+C를 누르자 watch 화면이 사라지고 프롬프트가 돌아왔습니다. 이어서 확인한 종료 코드는 0이었습니다.

echo $?
0

watch는 한 번 출력하고 끝나는 명령을 되풀이해 실행할 때 사용합니다. 프로세스마다 CPU와 메모리 사용량이 바뀌는 모습을 보려면 화면을 스스로 새로 그리는 top 명령어가 맞습니다.

watch는 procps-ng 패키지에 들어 있는 명령입니다. 버전은 [watch -v]로 확인하며, AlmaLinux 9.8 서버는 3.3.17, Debian 12 서버는 4.0.2였습니다.

watch -v
watch from procps-ng 3.3.17
watch -v
watch from procps-ng 4.0.2

2️⃣ watch 간격과 강조 옵션

  • ↪️ -n 간격, -d 강조, -t 머리 줄 끄기

-n 뒤에 초를 적으면 갱신 간격이 바뀝니다. [watch -n 1 date]로 실행하자 머리 줄 왼쪽이 Every 1.0s로 바뀌었습니다.

watch -n 1 date
Every 1.0s: date                                                   server1: Thu Oct 29 02:28:15 2026

Thu Oct 29 02:28:15 UTC 2026

man 페이지 기준으로 간격은 0.1초보다 짧게 정할 수 없고, 그보다 작은 값은 0.1초로 바뀝니다. 소수점은 마침표와 쉼표를 모두 인식합니다.

-d는 바로 앞 갱신과 달라진 글자를 강조합니다. 작업 폴더의 size.log를 [ls -l]로 지켜보는 동안, 다른 창에서 이 파일에 한 줄을 더했습니다.

watch -d -n 1 ls -l size.log
Every 1.0s: ls -l size.log                                         server1: Thu Oct 29 02:28:53 2026

-rw-r--r-- 1 root root 7 Oct 29 02:28 size.log
printf 'line 2\n' >> size.log

파일 크기가 7에서 14로 바뀌자 크기 칸부터 줄 끝까지가 강조되었습니다. 숫자가 한 자리 늘어 그 뒤 글자가 모두 한 칸씩 밀렸기 때문입니다. 다음 갱신에서는 값이 그대로여서 강조가 사라졌습니다.

Every 1.0s: ls -l size.log                                         server1: Thu Oct 29 02:28:54 2026

-rw-r--r-- 1 root root 14 Oct 29 02:28 size.log

처음 실행했을 때와 견줘 바뀐 곳을 계속 강조하려면 [--differences=permanent]를 사용합니다(man 페이지 기준).

-t는 머리 줄과 그 아래 빈 줄을 없애고 명령의 출력만 남깁니다.

watch -t -n 1 date
Thu Oct 29 02:28:19 UTC 2026

3️⃣ watch 명령어 종료 조건과 옵션

  • ↪️ -g 출력 변화와 -e 오류

-g는 명령의 출력이 바뀌면 watch를 끝냅니다. 상태 파일의 내용이 바뀌기를 기다렸다가 다음 작업으로 넘어갈 때 사용합니다.

watch -g -n 1 cat status.txt
Every 1.0s: cat status.txt                                         server1: Thu Oct 29 02:29:12 2026

running

다른 창에서 아래 명령으로 status.txt의 내용을 done으로 바꿨습니다.

printf 'done\n' > status.txt

그러자 watch가 끝나 프롬프트가 돌아왔고, 종료 코드는 0이었습니다.

echo $?
0

-e는 명령이 0이 아닌 종료 코드로 끝나면 화면 갱신을 멈춥니다. 작업 폴더에 없는 파일을 ls로 지켜보자, ls의 오류 출력과 함께 화면 맨 아래 줄에 키를 누르면 끝난다는 안내가 나왔습니다.

watch -e -n 1 ls nofile.txt
Every 1.0s: ls nofile.txt                                          server1: Thu Oct 29 02:29:18 2026

ls: cannot access 'nofile.txt': No such file or directory










command exit with a non-zero status, press a key to exit

머리 줄의 시각은 실행 직후 시각에서 멈춰 있었고, 키를 하나 누르자 watch가 끝났습니다. 이때 종료 코드는 8이었습니다.

echo $?
8

man 페이지는 종료 코드 8을 명령이 오류로 끝난 경우를 포함한 값으로 설명합니다.

📌 주요 옵션: 이 글에서 실행한 결과

옵션하는 일이 글에서 본 결과
-n 초갱신 간격을 바꿈(기본 2초)머리 줄이 Every 1.0s로 바뀜
-d바로 앞 갱신과 달라진 글자를 강조파일 크기 7 → 14에서 그 칸부터 줄 끝까지 강조, 다음 갱신에서 사라짐
-t머리 줄과 그 아래 빈 줄을 끔date 출력 한 줄만 남음
-g출력이 바뀌면 watch를 끝냄running → done 뒤 끝남, 종료 코드 0
-e명령이 오류로 끝나면 화면을 멈춤키를 누르자 끝남, 종료 코드 8
-v버전 정보를 출력AlmaLinux 9.8 서버는 watch from procps-ng 3.3.17, Debian 12 서버는 watch from procps-ng 4.0.2

📎 그 밖의 옵션: 공식 매뉴얼 기준

옵션하는 일
-b명령이 0이 아닌 종료 코드로 끝나면 경고음을 냄
-cANSI 색과 글자 꼴 코드를 해석해 명령 출력의 색을 그대로 출력
-p간격마다 실행하도록 맞춰 갱신 시각이 뒤로 밀리지 않게 함
-x명령을 sh -c 대신 exec로 실행해 따옴표를 덜 씀
-w긴 줄을 다음 줄로 넘기지 않고 잘라서 출력
--differences=permanent처음 실행한 뒤로 바뀐 곳을 모두 계속 강조
-h도움말을 출력

4️⃣ watch 명령어 따옴표와 파이프

  • ↪️ 작은따옴표로 감싸기와 디스크 사용량 지켜보기

watch는 받은 명령을 sh -c로 실행하므로, 파이프(|)나 $가 들어간 명령은 명령 전체를 작은따옴표로 감쌉니다. 작업 폴더의 파일 수를 [ls | wc -l]로 지켜보자 머리 줄에 파이프까지 명령 전체가 나왔습니다.

watch -n 1 'ls | wc -l'
Every 1.0s: ls | wc -l                                             server1: Thu Oct 29 02:30:22 2026

6

다른 창에서 파일 하나를 더 만들자, 다음 갱신에서 숫자가 6에서 7로 바뀌었습니다.

printf 'c\n' > q3.txt
Every 1.0s: ls | wc -l                                             server1: Thu Oct 29 02:30:24 2026

7

따옴표 없이 [watch -n 1 ls | wc -l]로 입력하면 셸이 파이프를 먼저 나눠, watch의 화면 출력 전체가 wc로 넘어갑니다. 그래서 지켜볼 명령에 파이프가 있으면 명령 전체를 따옴표로 감쌉니다.

$도 같은 규칙을 따릅니다. 따옴표 없이 [watch -n 1 echo $$]로 실행하자 지금 셸이 $$를 먼저 숫자로 바꿔, 머리 줄의 명령에도 그 숫자가 나왔습니다.

watch -n 1 echo $$
Every 1.0s: echo 3755802                                           server1: Thu Oct 29 02:29:37 2026

3755802

작은따옴표로 감싸면 $$가 그대로 넘어가므로, 머리 줄에는 echo $$가 나오고 갱신할 때마다 새로 실행한 sh의 PID가 출력되었습니다.

watch -n 1 'echo $$'
Every 1.0s: echo $$                                                server1: Thu Oct 29 02:29:40 2026

3756270
Every 1.0s: echo $$                                                server1: Thu Oct 29 02:29:41 2026

3756333

지금 셸의 PID를 [echo $$]로 확인하자, 따옴표 없이 실행했을 때 고정되었던 숫자와 같았습니다.

echo $$
3755802

디스크 사용량처럼 천천히 바뀌는 값은 간격을 몇 초로 두고 지켜봅니다. du 명령어의 -s는 합계만, -h는 K·M 같은 단위로 출력합니다. 작업 폴더를 [du -sh .]로 지켜보는 동안 다른 창에서 로그 파일에 8,001바이트를 더하자, 다음 갱신에서 28K가 36K로 바뀌었습니다.

watch -n 2 du -sh .
Every 2.0s: du -sh .                                               server1: Thu Oct 29 02:30:34 2026

28K     .
printf '%08000d\n' 0 >> grow.log
Every 2.0s: du -sh .                                               server1: Thu Oct 29 02:30:36 2026

36K     .

🔲 watch 명령어 시뮬레이터

아래 시뮬레이터에서 watch를 실행한 뒤, [🖊 다른 창] 칩으로 파일을 바꾸며 화면이 어떻게 바뀌는지 직접 확인할 수 있습니다.

watch 명령어 시뮬레이터procps-ng 3.3.17
[root@server work]#
브라우저 안에서만 동작합니다. watch 화면에서는 「다른 창」 칩으로 파일을 바꿔 보고, Ctrl+C 로 끝냅니다.

🔢 FAQ & 추천 콘텐츠

man 페이지 기준으로 WATCH_INTERVAL 환경 변수에 초를 넣어 두면, -n을 적지 않았을 때 그 값을 간격으로 사용합니다. 값의 규칙은 -n과 같아서 0.1초보다 짧게 정할 수 없습니다.

man 페이지 기준으로 watch는 출력에 들어 있는 제어 문자를 지우고 그립니다. 색을 넣어 출력하는 명령을 지켜볼 때 색까지 보려면 [watch -c]처럼 -c를 함께 사용합니다.

man 페이지 기준으로 기본 실행에서는 갱신할 때마다 시각의 초 아래 자리가 조금씩 늘어납니다. -p를 함께 쓰면 간격마다 실행하도록 맞춰, 그 자리가 거의 같은 값으로 유지됩니다.

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

인간임을 증명하세요: 5   +   2   =