Manipulando Timestamps de Arquivos com touch
O comando touch permite que você não apenas crie arquivos, mas também atualize seus timestamps. Isso é útil para testes ou quando você precisa sincronizar timestamps entre arquivos.
Atualizando Todos os Timestamps
Para atualizar todos os timestamps (acesso, modificação e mudança) para a hora atual:
touch testfile.txt
Verifique os timestamps:
stat testfile.txt
Saída:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 14:45:10.000000000 +0000
Modify: 2023-05-15 14:45:10.000000000 +0000
Change: 2023-05-15 14:45:10.000000000 +0000
Birth: -
Atualizando Apenas o Tempo de Acesso
Para atualizar apenas o tempo de acesso:
touch -a testfile.txt
Verifique os timestamps:
stat testfile.txt
Saída:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 14:46:15.000000000 +0000
Modify: 2023-05-15 14:45:10.000000000 +0000
Change: 2023-05-15 14:46:15.000000000 +0000
Birth: -
Observe que o tempo de mudança (ctime) também é atualizado porque os metadados do arquivo foram alterados.
Atualizando Apenas o Tempo de Modificação
Para atualizar apenas o tempo de modificação:
touch -m testfile.txt
Verifique os timestamps:
stat testfile.txt
Saída:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 14:46:15.000000000 +0000
Modify: 2023-05-15 14:47:20.000000000 +0000
Change: 2023-05-15 14:47:20.000000000 +0000
Birth: -
Novamente, o tempo de mudança também é atualizado.
Definindo Timestamps Específicos
Você pode definir um timestamp específico usando a opção -d com touch:
touch -d "2023-01-01 12:00:00" testfile.txt
Verifique os timestamps:
stat testfile.txt
Saída:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-01-01 12:00:00.000000000 +0000
Modify: 2023-01-01 12:00:00.000000000 +0000
Change: 2023-05-15 14:48:30.000000000 +0000
Birth: -
Isso define os tempos de acesso e modificação para 1º de janeiro de 2023, às 12h00. O tempo de mudança ainda é atualizado para a hora atual.
Criando um Novo Arquivo com Timestamps de um Arquivo Existente
Você também pode usar a opção -r para referenciar os timestamps de outro arquivo:
## Crie um novo arquivo
touch newfile.txt
## Defina seus timestamps com base em testfile.txt
touch -r testfile.txt newfile.txt
Verifique os timestamps do novo arquivo:
stat newfile.txt
Saída:
File: newfile.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 2101100 Links: 1
Access: (0644/-rw-r--r--) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-01-01 12:00:00.000000000 +0000
Modify: 2023-01-01 12:00:00.000000000 +0000
Change: 2023-05-15 14:49:45.000000000 +0000
Birth: -
Os tempos de acesso e modificação de newfile.txt agora correspondem aos de testfile.txt.