“touch” é um comando básico do Linux para criar ficheiros vazios ou alterar os carimbos temporais dos ficheiros (última data ou hora de acesso ao ficheiro ou modificação).
O comando touch é muito útil no uso diário, é útil para testar transferências de ficheiros criando ficheiros vazios para teste, tendo a capacidade de criar ficheiros fictícios para fazer o que quisermos com eles pode ajudar a qualquer momento, por exemplo, a testar qualquer comando Linux que interaja directamente com um ficheiro, para comandos como wipe, srm, ou shred que não se queira experimentar ficheiros reais.
Quando utilizamos o comando touch com o nome de um ficheiro existente, touch não cria um novo ficheiro mas actualiza os carimbos temporais do ficheiro. Por outro lado, alterar os carimbos temporais seria útil se quisermos evitar que alguém saiba que acedemos a um ficheiro forjando a data e hora reais em que foi realmente acedido.
Os ficheiros Linux têm 3 carimbos temporais: atime, mtime e ctime.
atime: atime contém informação sobre quando o conteúdo do ficheiro foi lido com ferramentas ou comandos para mostrar o conteúdo do ficheiro como less, nano, vi, vim, cat, grep, head, etc. O atime timestamp muda e é actualizado sempre que o ficheiro é visto.
mtime: a atime mostra a última modificação do conteúdo de um ficheiro, incluindo o seu nome, mas não a sua propriedade ou permissões, apenas o próprio ficheiro.
ctime: como o mtime ctime também mostra quando um ficheiro foi modificado, mas também é actualizado quando a propriedade, grupo ou permissão de acesso num ficheiro foi alterada. Podemos editar o atime e o mtime mas não podemos editar o ctime, o time é actualizado quando as permissões de um ficheiro são editadas ou quando os ficheiros são realmente lidos ou modificados
Editar o timestamp do atime:
Antes de ver os carimbos de hora de um ficheiro, vamos criá-lo escrevendo:
$ ls
LinuxHintEmptyFile
Onde:
touch = cria um ficheiro vazio chamado LinuxHintEmptyFIle
ls = lista os ficheiros no directório
p> Agora para ver os carimbos temporais do ficheiro no tipo de terminal
O comando stat mostra as permissões de acesso, último acesso (atime), última modificação (mtime) e última modificação (ctime).
Desde que o ficheiro foi recentemente criado data e hora são as mesmas, vamos alterar as permissões do ficheiro para ver a diferença de saída do stat:
Where:
Chmod -777: remove todas as permissões do ficheiro LinuxHintEmptyFile.
stat: mostra os carimbos temporais do ficheiro
Na imagem acima podemos ver que o ctime (Change) foi actualizado.
Agora, vamos editar o ficheiro atime para 1/2/99, digite:
Se também quiser alterar o tipo de acesso à data:
Editando o carimbo da hora mtime:
A sintaxe para editar mtime é a mesma, para alterar o ctime para 1989.02.01 type:
Agora pode ver que a data de modificação foi actualizada, para actualizar também a hora de forma semelhante com um tipo de hora:
Agora vamos criar um segundo ficheiro e vamos usar o comando touch para copiar os carimbos temporais de um ficheiro no segundo:
Temos um ficheiro acedido,modificado e alterado o 2019-05-15 00:02:14, para copiar os carimbos temporais do ficheiro LinuxHintEmptyFile tipo:
Como vê agora ambos os ficheiros partilham os mesmos carimbos temporais.
Se quisermos alterar todos os carimbos de tempo para a hora actual só precisamos de digitar “touch”:
Como vê a segunda estatística mostra o tempo actualizado atime, mtime e ctime após o comando touch.
Espero que este tutorial tenha sido útil como introdução ao comando touch, para mais informações sobre este comando do tipo “man touch”, caso tenha alguma dúvida contacte-nos abrindo um ticket de suporte no LinuxHint Support. Continue a seguir o LinuxHint para mais dicas e actualizações em Linux.