Comando touch no Linux (altera metadados) [Guia Básico]

Altere os metadados dos arquivos no Linux com o comando touch

Todo arquivo contém informações de metadados, como o seu nome, data de criação, data de modificação e data de último acesso, dentre outras informações.

O comando touch serve para alterar os metadados de tempo dos arquivos, modificando a data de último acesso ou de modificação dos arquivos. 

Isto pode ser útil para marcar um arquivo sofrer backup incremental ou diferencial a partir de uma determinada data, ou ser sincronizado num repositório, sem a necessidade de alterar o conteúdo do arquivo, bastando alterar a sua data de modificação.

O comando touch também é útil para criar um arquivo vazio, se o arquivo informado não existir.

Opções do comando touch

As opções mais comuns são:

  • -a                Muda a informação de último acesso do arquivo
  • -c                Não cria o arquivo se ele não existir
  • -d data       Permite que uma data no formato texto seja informada ao invés da data e hora corrente
  • -m               Muda a hora de modificação do arquivo
  • -t stamp    Usa o formato  [[CC]YY]MMDDhhmm[.ss] ao invés da data e hora corrente
  • –time=PALAVRA    Muda a informação de tempo informada, que pode ser atime (acesso) ou modificação (mtime)

A opção  -d=data é texto de data legível por humanos, na sua maioria livre, como “Dom, 29 de fevereiro de 2004 16:21:42 -0800 “ou” 2004-02-29 16:21:42 “ou até “próxima quinta-feira”. Uma sequência de datas pode conter itens indicando data do calendário, hora do dia, fuso horário, dia da semana, hora relativa, data relativa e números. 

Criar arquivo vazio no Linux

No exemplo abaixo o touch é usado para criar um arquivo vazio chamado config.txt:

$ touch config.txt
$ ls -l
-rw-rw-r-- 1 ec2-user ec2-user       0 set 13 22:29 config.txt

Criar vários arquivos de uma vez no Linux

Uma lista também pode ser usada para criar vários arquivos:

$ touch teste{1..3}.txt
$ ls -l
-rw-rw-r-- 1 ec2-user ec2-user 226 set 12 16:14 teste1.c
-rw-rw-r-- 1 ec2-user ec2-user       0 set 13 22:31 teste1.txt
-rw-rw-r-- 1 ec2-user ec2-user       0 set 13 22:31 teste2.txt
-rw-rw-r-- 1 ec2-user ec2-user       0 set 13 22:31 teste3.txt

Alterar data de modificação de um arquivo no Linux

O touch pode ser usado para alterar a data de modificação de um arquivo, como por exemplo teste1.c que foi alterando em 12/set:

$ touch -d "09/12" teste1.c
$ ls -l 
-rw-rw-r-- 1 ec2-user ec2-user   226 set 12 22:35 teste1.c
-rw-rw-r-- 1 ec2-user ec2-user     0 set 13 22:31 teste1.txt
-rw-rw-r-- 1 ec2-user ec2-user     0 set 13 22:31 teste2.txt
-rw-rw-r-- 1 ec2-user ec2-user     0 set 13 22:31 teste3.txt

Você também pode especificar uma data e hora específica ao invés da data e hora correntes. Neste exemplo: 11/05/1978 às 18:40:30 :

$ touch -t 197805111840.30 teste1.c
$ ls -l 
-rw-rw-r-- 1 ec2-user ec2-user   226 mai 11  1978 teste1.c

O formato da hora específica é definido pelo padrão CCYYMMDDhhmm.ss, em que:

  • CC – Os dois primeiros dígitos do ano.
  • YY – Os dois dígitos subsequentes do ano.
  • MM – O mês do ano [01-12].
  • DD – O dia do mês [01-31].
  • hh – A hora do dia [ 00-23].
  • mm – O minuto da hora [00-59].
  • ss – O segundo do minuto [00-59]

Você também pode especificar a data e a hora como um conjunto (string) usando a opção -d. A linha de comando a seguir mostra um exemplo que define a data para 23 de fevereiro e a hora é automaticamente definida para 00:00:

$ touch -d '23 Feb'  teste1.c
$ ls -l teste*
-rw-rw-r-- 1 ec2-user ec2-user   226 fev 23  2019 teste1.c

Veja este pequeno vídeo de como funciona o comando touch:

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe