Comando watch: uso, intervalo -n, destaque -d e sair quando a saída muda

Ambiente de testeFamília RHELAlmaLinux 9.8procps-ng 3.3.17conta rootDebian 12 · procps-ng 4.0.2 conta comum
Comandos de processos · agendamentowatchLocalização/usr/bin/watchVerificado em 2026-11-05
Acompanhar mudanças na saída de um comando

O comando watch é um comando do Linux que executa de novo um comando informado a cada 2 segundos e redesenha a saída na tela inteira do terminal. Ao acompanhar arquivos com o watch em um servidor AlmaLinux 9 enquanto eles eram alterados em outra janela, a opção -d destacou os caracteres que mudaram e a opção -g encerrou o watch depois que a saída mudou.

A saída abaixo vem de uma pasta de trabalho em um servidor AlmaLinux 9.8, executada como root; em um servidor Debian 12 foi verificada só a versão. O nome do host na linha de cabeçalho, no topo da tela, foi trocado pelo valor de exemplo server1, e os horários estão em UTC.

1️⃣ Como usar o comando watch

  • ↪️ Intervalo padrão de 2 segundos e sair com Ctrl+C

Escreva depois de watch o comando a ser repetido; sem opções, ele é executado a cada 2 segundos e a tela é trocada pela nova saída. Ao acompanhar o date, apareceu uma linha de cabeçalho no topo da tela e, depois de uma linha vazia, a saída do date.

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

Thu Oct 29 02:28:07 UTC 2026

O lado esquerdo da linha de cabeçalho mostra o intervalo de atualização e o comando em execução; o lado direito, o nome do host e o horário da última execução. Ao conferir a mesma tela 2 segundos depois, o horário do cabeçalho e a saída do date tinham mudado juntos.

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

Thu Oct 29 02:28:09 UTC 2026

O watch continua rodando até você encerrá-lo, então ele é encerrado com Ctrl+C. Ao pressionar Ctrl+C, a tela do watch sumiu e o prompt voltou. O código de saída conferido logo depois foi 0.

echo $?
0

O watch serve para repetir comandos que imprimem uma vez e terminam. Para ver como o uso de CPU e memória muda em cada processo, o mais adequado é o comando top, que redesenha a própria tela.

O watch faz parte do pacote procps-ng. A versão é conferida com [watch -v]; era 3.3.17 no servidor AlmaLinux 9.8 e 4.0.2 no servidor Debian 12.

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

2️⃣ Opções de intervalo e destaque do watch

  • ↪️ Intervalo -n, destaque -d e -t para ocultar o cabeçalho

Um número de segundos depois de -n muda o intervalo de atualização. Ao executar [watch -n 1 date], o lado esquerdo do cabeçalho passou para 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

Segundo a página man, o intervalo não pode ser menor que 0,1 segundo, e valores menores viram 0,1 segundo. O separador decimal pode ser ponto ou vírgula.

-d destaca os caracteres que diferem da atualização anterior. Enquanto o size.log da pasta de trabalho era acompanhado com [ls -l], uma linha foi adicionada ao arquivo em outra janela.

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

Quando o tamanho do arquivo passou de 7 para 14, tudo da coluna de tamanho até o fim da linha foi destacado. O número ganhou um dígito, então todos os caracteres depois dele andaram uma posição. Na atualização seguinte o valor ficou igual e o destaque sumiu.

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

Para continuar destacando tudo o que mudou desde a primeira execução, use [--differences=permanent] (segundo a página man).

-t remove a linha de cabeçalho e a linha vazia abaixo dela, deixando só a saída do comando.

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

3️⃣ Condições de saída e opções do comando watch

  • ↪️ -g para mudança na saída e -e para erros

-g encerra o watch quando a saída do comando muda. É usado para esperar o conteúdo de um arquivo de status mudar antes de seguir para a próxima tarefa.

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

running

Em outra janela, o comando abaixo mudou o conteúdo de status.txt para done.

printf 'done\n' > status.txt

Então o watch terminou, o prompt voltou e o código de saída foi 0.

echo $?
0

-e congela a tela quando o comando termina com um código de saída diferente de 0. Ao acompanhar com ls um arquivo que não existe na pasta de trabalho, apareceu a saída de erro do ls e, na última linha da tela, um aviso de que pressionar uma tecla encerra.

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

O horário do cabeçalho parou no momento logo após a execução, e pressionar uma tecla encerrou o watch. Desta vez o código de saída foi 8.

echo $?
8

A página man descreve o código de saída 8 como um valor que inclui o caso em que o comando terminou com erro.

📌 Principais opções: resultados deste artigo

OpçãoTarefaResultado neste artigo
-n segundosMuda o intervalo de atualização (padrão de 2 segundos)O cabeçalho passou para Every 1.0s
-dDestaca os caracteres que diferem da atualização anteriorCom o tamanho 7 → 14, destaque daquela coluna até o fim da linha, sumiu na atualização seguinte
-tOculta a linha de cabeçalho e a linha vazia abaixo delaSobrou só uma linha de saída do date
-gEncerra o watch quando a saída mudaTerminou após running → done, código de saída 0
-eCongela a tela quando o comando termina com erroTerminou ao pressionar uma tecla, código de saída 8
-vMostra as informações de versãowatch from procps-ng 3.3.17 no servidor AlmaLinux 9.8, watch from procps-ng 4.0.2 no servidor Debian 12

📎 Outras opções: segundo o manual oficial

OpçãoTarefa
-bEmite um bipe quando o comando termina com um código de saída diferente de 0
-cInterpreta códigos ANSI de cor e estilo para manter as cores da saída do comando
-pExecuta a cada intervalo para que o horário de atualização não atrase
-xExecuta o comando com exec em vez de sh -c, exigindo menos aspas
-wCorta linhas longas em vez de quebrá-las para a linha seguinte
--differences=permanentContinua destacando tudo o que mudou desde a primeira execução
-hMostra a ajuda

4️⃣ Aspas e pipes no comando watch

  • ↪️ Colocar entre aspas simples e acompanhar o uso do disco

O watch executa o comando recebido com sh -c, então um comando que contém um pipe(|) ou $ deve ficar inteiro entre aspas simples. Ao acompanhar o número de arquivos da pasta de trabalho com [ls | wc -l], o cabeçalho mostrou o comando inteiro, com o pipe.

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

6

Ao criar mais um arquivo em outra janela, o número passou de 6 para 7 na atualização seguinte.

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

7

Se você digitar [watch -n 1 ls | wc -l] sem aspas, o shell separa o pipe primeiro e toda a saída de tela do watch vai para o wc. Por isso, quando o comando a acompanhar tem um pipe, coloque o comando inteiro entre aspas.

O $ segue a mesma regra. Ao executar [watch -n 1 echo $$] sem aspas, o shell atual trocou primeiro $$ por um número, e esse número apareceu também no comando do cabeçalho.

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

3755802

Entre aspas simples, $$ é repassado sem mudança; por isso o cabeçalho mostrou echo $$ e cada atualização imprimiu o PID do sh recém-executado.

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

O PID do shell atual, conferido com [echo $$], era o mesmo número que tinha ficado fixo na execução sem aspas.

echo $$
3755802

Valores que mudam devagar, como o uso do disco, são acompanhados com um intervalo de alguns segundos. Comando du: -s mostra só o total e -h mostra os tamanhos em unidades como K e M. Enquanto a pasta de trabalho era acompanhada com [du -sh .], adicionar 8.001 bytes a um arquivo de log em outra janela fez 28K virar 36K na atualização seguinte.

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

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

36K     .

🔲 Simulador do comando watch

No simulador abaixo, execute o watch e depois altere arquivos com os chips [🖊 Outra janela] para ver você mesmo como a tela muda.

Simulador do comando watchprocps-ng 3.3.17
[root@server work]#
Funciona só no seu navegador. Na tela do watch, altere arquivos com os chips [Outra janela] e encerre com Ctrl+C.

🔢 FAQ & conteúdo recomendado

Segundo a página man, se você colocar um número de segundos na variável de ambiente WATCH_INTERVAL, esse valor é usado como intervalo quando -n não é informado. O valor segue as mesmas regras de -n, então não pode ser menor que 0,1 segundo.

Segundo a página man, o watch remove os caracteres de controle da saída antes de desenhá-la. Para ver as cores ao acompanhar um comando com saída colorida, adicione -c, como em [watch -c].

Segundo a página man, numa execução normal a fração de segundo do horário de atualização cresce um pouco a cada atualização. Com -p, o watch executa a cada intervalo e essa fração fica quase igual.

ℹ️ Aviso de afiliados
O conteúdo deste site contém links de afiliados. Quando um visitante compra um produto ou serviço por meio de um desses links, o site recebe uma comissão do vendedor. O valor que o comprador paga (em promoções, ele diminui ↓) não aumenta por causa disso. Preços, descontos e informações de estoque valem para o momento em que o texto foi escrito e podem ter mudado, por isso confirme com o vendedor antes de comprar. Os produtos são escolhidos e avaliados por critérios próprios, e o recebimento de comissão não influencia a ordem de apresentação nem o conteúdo das avaliações.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Demonstre sua humanidade: 9   +   3   =