Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] USO DO COMANDO TOUCH

Boa noite, ja utilizei o comando touch para criar arquivos. porém como explicado na aula para tocar o arquivo e atualizar a data. Para qual função verdadeiramente serve o comando Touch? fiquei confuso. outra duvida é que o horário dos arquivos não batem com o horário atual.

drwxrwxr-x 2 anottsu anottsu 4096 Sep 21 22:18 ./
drwxrwxr-x 5 anottsu anottsu 4096 Sep 21 22:18 ../
-rw-rw-r-- 1 anottsu anottsu   12 Sep 21 22:18 arq11.txt

anottsu@juliano-pc:~/workspace/projetos c#$ date
Thu Sep 21 10:53:35 PM UTC 2023

anottsu@juliano-pc:~/workspace/projetos c#$ touch arq11.txt
anottsu@juliano-pc:~/workspace/projetos c#$ ll
total 12
drwxrwxr-x 2 anottsu anottsu 4096 Sep 21 22:18 ./
drwxrwxr-x 5 anottsu anottsu 4096 Sep 21 22:18 ../
-rw-rw-r-- 1 anottsu anottsu   12 Sep 21 22:55 arq11.txt
anottsu@juliano-pc:~/workspace/projetos c#$ 

o horario atual é 20:00hrs

2 respostas
solução!

Olá, Juliano, tudo bem?

De fato, o comando touch não serve para criar arquivos, mas sim para alterar o timestamp do arquivo, utilizando por padrão o horário do seu sistema. Mesmo sendo 20:00 para você, no comando date seu sistema mostra o horário das 10:53:35 da noite, o seu sistema pode estar com o horário errado mesmo.

O comando touch serve apenas para alterar o timestamp do arquivo, porém se o arquivo não existir, ele o criará.

Podemos alterar o timestamp do arquivo utilizando o horário de outro arquivo como referência, no seu caso, execute:

touch arq11.txt -r outro-arquivo-existente.txt

Também podemos usar um timestamp para definir a hora, no caso o comando touch tem a opção -r e utiliza um padrão de timestamp, que pode ser verificado na página de manual. Podemos utilizar o comando date para gerar um timestamp para nós

date "+%Y%m%d%H%M.%S"

Vou alterar o ano 2023 no timestamp para 2020

touch -t 202009212202.00 arq11.txt 

Agora vai parecer que você criou o arquivo em 2020! Mas não se engane, no inode tem mais informações e com um pouco de computação forense, dá para verificar a real idade do arquivo :P

Para ver a página de manual do comando date:

man date

Para a página de manual do touch:

man touch

Para a página de manual do manual:

man man

Muito boa a explicação. Top demais. Vou explorar os manuais. Muito Obrigado