Comandos essenciais do Linux: "touch"
O comando touch tem a função de actualizar data e
hora de acesso e modificação de um ficheiro para o momento actual, uma função
valiosa para scripts e fluxos de trabalho automatizados. Notavelmente, quando
o nome do ficheiro especificado não existe no sistema (no directório onde o
comando irá operar), cria facilmente um novo ficheiro vazio com tal nome.
Vamos criar o noso primeiro ficheiro.
Na imagem acima, criamos o ficheiro meu_ficheiro.txt usando o comando touch, de seguida usamos o comando ls para listar e junto com a opção -l para visualizar os detalhes do ficheiro.
Na imagem abaixo actualizamos a hora desde ficheiro, e para isso
usamos a opção -c. Vejamos abaixo.
Vamos então tentar perceber: na primeira imagem simplesmente usamos o comando touch que
criou um ficheiro com o nome especificado, uma vez que este ainda não existia no
directório em que corremos o comando. Na segunda imagem usamos o mesmo comando
mas com uma opção adicional para actualizar o timestamp do ficheiro, conforme
mostra a segunda imagem.
E se corrermos este comando para criar um ficheiro com nome já existente mas
sem a opção -c ? Vejamos o resultado na imagem abaixo.
Vamos adicionar conteúdo ao ficheiro e fazer novamente esta experiência. Em
algum momento pode parecer que umas das opções substitui o ficheiro antigo
pelo novo.
Depois de adicionar conteúdo ao ficheiro, usamos o comando cat para imprimir o conteúdo
do mesmo, corremos novamente o comando touch e de seguida imprimimos novamente o
contéudo do ficheiro para ver se foi de facto substituido ou se apenas
actualizou-se o timestamp.
E conforme podemos ver, o ficheiro não foi substituido, mas sim foi
actualizado seu timestamp.
Vamos seguir so mesmos passos usando a opção -c. Veja abaixo.
E o resultado é o mesmo. A grande difença aqui é: quando usamos a opção -c, se o ficheiro não existir, não será criado.
A opção -a altera a hora de acesso ao ficheiro para a hora actual do sistema
e não altera a hora em que o ficheiro foi modificado. Se o ficheiro não
existir, será criado. Vejamos abaixo.
Note que na imagem acima usamos o comando stat para ter mais detalhes do
ficheiro, e conseguimos ver que a hora do ultimo acesso ao ficheiro foi
actualizada mas a hora em que foi modificado não foi alterada. Nos primeiros dois exemplos deste tutorial
vimos que a hora é alterada para a hora actual do sistema.
A opção -cr altera as horas de acesso e modificação do ficheiro "a" para
corresponder as horas do ficheiro "b". A hora de alteração será definida
para a hora actual do sistema. Se o ficheiro "b" não existir, não será
criado e o ficheiro "a" já deve existir neste contexto.
Vejamos abaixo o exemplo para os ficheiros meu_ficheiro.txt
e meu_ficheiro2.tx.
E o ficheiro meu_ficheiro2.txt já tem a mesma hora de acesso e modificação iguais
as do ficheiro meu_ficheiro.txt.











Comentários