Por vezes, enquanto trabalha na linha de comando no Linux, poderá querer criar um novo ficheiro. Ou, pode haver alturas em que o requisito é alterar os carimbos temporais de um ficheiro. Bem, existe um utilitário que pode ser utilizado em ambos os cenários. A ferramenta em questão é táctil, e neste tutorial, compreenderemos a sua funcionalidade básica através de exemplos fáceis de compreender.
Por favor note que todos os exemplos que iremos utilizar aqui foram testados numa máquina Ubuntu 16.04.
Comando Toque do Linux
O comando táctil é utilizado principalmente para alterar os carimbos temporais de um ficheiro, mas se o ficheiro (cujo nome é passado como argumento) não existe, então a ferramenta cria-o.
Seguir é a sintaxe genérica do comando:
touch ... FILE...
E eis como a página de manual explica este comando:
DESCRIPTION
Update the access and modification times of each FILE to the current
time. A FILE argument that does not exist is created empty, unless -c or -h
is supplied. A FILE argument string of - is handled specially and causes touch to
change the times of the file associated with standard output.
O seguinte Q&Exemplos do tipo dar-lhe-á uma melhor ideia de como a ferramenta funciona.
Como alterar o tempo de acesso/modificação utilizando o comando de toque
Isto é simples, e bastante directo. Tomemos como exemplo um ficheiro existente. A captura de ecrã seguinte mostra os tempos de acesso e modificação de um ficheiro chamado ‘apl.c.’
Aqui está como se pode usar o comando de toque para alterar os tempos de acesso e modificação do ficheiro:
touch apl.c
A captura de ecrã seguinte confirma a alteração destes tempos de acesso e modificação.
Como alterar apenas o tempo de acesso ou de modificação
Por defeito, o comando de toque altera tanto o tempo de acesso como o tempo de modificação do ficheiro de entrada. No entanto, se quiser, pode limitar este comportamento a qualquer um destes timestamps. Isto significa que pode ou ter a hora de acesso alterada ou a hora de modificação.
Caso pretenda alterar apenas a hora de acesso, utilize a opção -a command line.
touch -a
Simplesmente, se o requisito for alterar apenas a hora de modificação, utilize a opção -m command line.
touch -m
Como fazer uso do tempo de acesso/modificação por toque de um ficheiro existente
Se quiser, pode também forçar o comando de toque para copiar o tempo de acesso e modificação de um ficheiro de referência. Por exemplo, suponha que queremos alterar os carimbos temporais para o ficheiro ‘apl.c’. Aqui estão os carimbos temporais actuais para este ficheiro:
E este é o ficheiro que pretende utilizar como referência:
Agora, para tocar para utilizar os carimbos temporais de ‘apl.c’ para ‘apl.c’, terá de usar a opção de linha de comando -r da seguinte forma:
touch apl.c -r apl
A imagem acima mostra que a modificação e o acesso aos carimbos temporais para ‘apl.c’ são agora os mesmos que para ‘apl.’
Como criar um novo ficheiro usando touch
Criar um novo ficheiro é também muito fácil. De facto, acontece automaticamente se o nome do ficheiro que se passa como argumento ao comando touch não existir. Por exemplo, para criar um ficheiro chamado ‘newfile’, tudo o que tem de fazer é executar o seguinte comando touch:
touch newfile
Como forçar o toque para não criar nenhum ficheiro novo
Apenas no caso de haver um requisito rigoroso de que o comando touch não deve criar nenhum ficheiro novo, então pode usar a opção -c.
touch -c
A imagem de ecrã seguinte mostra que, como ‘newfile12’ não existia, e utilizámos a opção de linha de comando -c, o comando de toque não criou o ficheiro.
Como funciona o toque em caso de ligações simbólicas
Por defeito, se passar um nome de ficheiro de ligação simbólica ao comando de toque, a alteração dos carimbos temporais de acesso e modificação será para o ficheiro original (aquele a que a ligação simbólica se refere). Contudo, a ferramenta também oferece uma opção (-h) que lhe permite sobrepor-se a este comportamento.
Aí está como a página de manual explica a opção -h:
-h, --no-dereference
affect each symbolic link instead of any referenced file (useful
only on systems that can change the timestamps of a symlink)
Então, quando quiser alterar a modificação e os carimbos temporais de acesso para a ligação simbólica (e não para o ficheiro original), utilize o comando de toque da seguinte forma:
touch -h
Conclusion
Como concordaria, o toque não é um comando difícil de compreender e utilizar. Os exemplos/opções que discutimos neste tutorial deverão ser suficientes para que possa começar a utilizar a ferramenta. Enquanto que os novatos se verão na sua maioria a utilizar o utilitário para criar novos ficheiros, os utilizadores mais experientes também jogam com ele para múltiplos outros fins. Para mais informações sobre o comando de toque, dirija-se à sua página man.