Comando touch do Linux
Nos sistemas operacionais do tipo Unix, o comando touch modifica os registros de data e hora do arquivo . Se o arquivo não existir, um arquivo vazio com esse nome será criado.
Este documento cobre a versão GNU / Linux do touch .
Descrição
Um registro de data e hora são informações associadas a um arquivo que identifica um momento importante no histórico do arquivo. Um arquivo pode ter vários registros de data e hora e alguns deles podem ser “falsificados”, configurando-os manualmente. Internamente, o sistema operacional armazena esses horários com o tempo decorrido desde uma data arbitrária chamada época . Para sistemas operacionais Unix, a época é 00:00:00, hora universal coordenada ( UTC ), quinta-feira, 1 de janeiro de 1970.
No Linux , há três carimbos de data e hora associados a um arquivo:
Tipo de carimbo de data e hora | Descrição | Abreviação |
---|---|---|
Tempo de acesso | A última vez que o arquivo foi lido. | um tempo |
Tempo de modificação | A última vez que o conteúdo do arquivo foi modificado. | mtime |
Mudar tempo | A última vez que os metadados do arquivo , chamados Status, foram alterados. As informações de status incluem as permissões de um arquivo e seus carimbos de data e hora. Sempre que algo acontece com um arquivo, pelo menos um elemento de seu status é alterado e seu ctime é definido como a hora atual do sistema. | ctime |
O atime e o mtime fazem parte dos metadados de status de um arquivo. Portanto, quando você altera o atime ( -a ) ou mtime ( -m ) de um arquivo, seu ctime é automaticamente definido como o horário atual.
Não há como definir manualmente o ctime.
O atime ou mtime de um arquivo pode ser definido para o futuro ou o passado, se o usuário possuir o arquivo.
Sintaxe
toque em [[ -a ] [ -m ] | [ --time = scheduleype ] [...]] [[ -d datestring ] | [ -t timestamp ]] [ -c ] [ -f ] [ -h ] [ -r reffile ] arquivo [ arquivo ...]
touch --version
touch --help
O único argumento necessário para tocar é um nome de arquivo :
Arquivo | Um arquivo cujos horários devem ser alterados. Se o arquivo não existir, ele será criado, a menos que as opções -c ou -h sejam usadas. Vários arquivos podem ser especificados como arquivo0 arquivo1 arquivo2 … etc. (Se o arquivo for um traço ” – “, o toque modifica a saída padrão do descritor de arquivo especial . Veja exemplos .) |
Sem opções, o toque altera a hora, o horário e o horário do arquivo para a hora atual do sistema.
Opções
Opção | Descrição | ||||
---|---|---|---|---|---|
-uma | Defina apenas o tempo de acesso. | ||||
-c , –no-create | Não crie arquivos. | ||||
-d datestring , –date = datestring | Analisar a data corda DateString , e usá-lo em vez do tempo atual. Sequências válidas para o comando date são aceitas pela opção -d . Veja exemplos . Além de ter acesso de gravação, o usuário também deve possuir um arquivo para definir seus horários para o passado ou o futuro. | ||||
-f | Esta opção não faz nada, mas é aceita para fornecer compatibilidade com as versões BSD do touch. | ||||
-h , – sem desreferencia | Se o arquivo for um link simbólico e essa opção for especificada, o toque modificará o carimbo de data e hora do link simbólico, em vez do arquivo referenciado. Se esta opção não for especificada, tocar vontade dereference links simbólicos antes de fazer modificações. Esta opção implica -c : nada será criado se o arquivo não existir. | ||||
-m | Defina apenas o tempo de modificação. | ||||
-r = reffile , –reference = reffile | Defina os horários do arquivo para os horários de repetição do arquivo em vez do horário atual. Além de ter acesso de gravação, o usuário também deve possuir um arquivo para definir seus horários para o passado ou o futuro. | ||||
-t timestamp | Use o carimbo de data e hora numérico em vez da hora atual. O formato do registro de data e hora é [[ CC ] AA ] MMDDhhmm [ .ss ]. Veja exemplos . Além de ter acesso de gravação, o usuário também deve possuir um arquivo para definir seus horários para o passado ou o futuro. | ||||
–time = horário | Uma maneira alternativa de especificar que tipo de hora definir (como com -a e -m ). O valor do horário deve ser um dos seguintes:
Esta opção pode ser especificada duas vezes de maneira não destrutiva. Por exemplo, –time = atime –time = mtime é o mesmo que -am . | ||||
–Socorro | Exiba uma mensagem de ajuda e saia. | ||||
–versão | Exiba informações da versão e saia. |
Notas
A opção -d usa uma sequência de datas legível por humanos. Por exemplo, “4 de julho” , “4 de julho” , “0:00” ou “4 de julho de 2017 00:00:00” . Se ano, mês ou dia forem omitidos, os valores atuais da hora do sistema serão usados. Se a hora for omitida, será usada meia-noite. O dia pode ser especificado antes ou depois do mês na sequência. Os números de um dígito podem ser prefixados com zero, ou não, de acordo com a preferência. Se segundos são especificados, devem ser precedido no tempo por dois pontos ( : ).
-t utiliza um registro de data e hora numérico, que expressa o mês, data, hora e minuto como MMDDHHMM . Por exemplo, 07040000 seria meia-noite de quatro de julho. Século, anos e segundos são opcionais e podem ser especificados como CCYYMMDDHHMM.SS . Se segundos forem especificados, eles deverão ser precedidos por um ponto ( . ).
Especificar horários no futuro é bom. Por exemplo, -d “1 de janeiro de 2029” . Além de ter acesso de gravação, o usuário também deve possuir um arquivo para definir seus horários para o passado ou o futuro.
Como não há como definir manualmente ctimes, as opções -r , -d — t podem modificar apenas atimes e mtimes. Quando um arquivo é tocado, o ctime sempre será definido para a hora atual do sistema.
Fusos horários
Se o valor da variável de ambiente TZ for definido, todas as operações usarão esse fuso horário. Caso contrário, o fuso horário padrão do sistema é usado.
Para definir a variável de ambiente TZ , use o comando tzselect .
Status de saída
O status de saída do toque é zero se todas as operações foram bem-sucedidas. Qualquer valor diferente de zero indica falha.
Exemplos
toque em file.txt
Se o arquivo.txt existir, defina seus horários de acesso, modificação e alteração (atime, mtime e ctime) para a hora atual do sistema. Se file.txt não existir, crie um arquivo vazio com esse nome.
toque em -c file.txt
Se o arquivo.txt existir, defina seu horário como o horário atual do sistema. Se não existir, não faça nada.
toque -um arquivo.txt
Mude o atime de file.txt . O mtime não é alterado. O ctime está definido para a hora atual do sistema. Se o arquivo.txt não existir, ele será criado.
toque -h mysym
Altere os horários do arquivo mysym . Se for um link simbólico, altere os horários do link simbólico, não os horários do arquivo referenciado.
toque -cr a.txt b.txt
Altere os horários de acesso e modificação de b.txt para corresponder aos horários de a.txt . O ctime será definido para a hora atual do sistema. Se o arquivo.txt não existir, ele não será criado.
toque em -ahmcr a.txt b.txt
Altere o atime e mtime de b.txt para corresponder ao atime e mtime de a.txt . Se file1.txt não existir, não faça nada. Se b.txt for um link simbólico, defina os horários do link simbólico. Não toque no arquivo referenciado.
toque --time = atime --no-dereference --time = mtime --no-create --reference = a.txt b.txt
Igual ao comando anterior.
toque -d "31 de outubro" -> boo.txt
Defina a hora e o horário da saída padrão como meia-noite, 31 de outubro do ano atual. Redirecione ( > ) a saída padrão para boo.txt .
o toque não pode substituir o conteúdo de um arquivo existente, mas o redirecionamento o fará. Se o boot.txt não existir, ele será criado. Se o boot.txt existir, ele será substituído .
toque em -t "10310000" -> boo.txt
Igual ao comando anterior.
Exemplos
toque em -d "1 de fevereiro" file1.txt
Defina atime e mtime de file1.txt como 1º de fevereiro do ano atual. O ctime está definido para a hora atual do sistema.
toque -d "1 de fevereiro" file1.txt
Igual ao comando anterior.
touch --date = "1 de fevereiro" file1.txt
Igual ao comando anterior.
toque -d "01:02" file1.txt
Defina o atime e o mtime do arquivo1.txt como 01:02 hoje.
toque em -d "1: 2" file1.txt
Igual ao comando anterior.
touch -md "1 de setembro de 1927 23:58:59" file1.txt
Defina o mtime do arquivo1.txt como 1 de setembro de 1927, 23:58 e 59 segundos. O ctime está definido para a hora atual do sistema. O atime não é alterado.
Exemplos
touch --time = 01020304 file1.txt
Defina atime e mtime de file1.txt para 2 de janeiro de 3:04 do ano atual. O ctime está definido para a hora atual do sistema.
toque -t 01020304 file1.txt
Igual ao comando anterior.
toque -t 5006070405 file1.txt
Defina o atime e o mtime do arquivo1.txt para 7 de junho de 2050, 04:05. O ctime está definido para a hora atual do sistema.
toque -t 205007080405 file1.txt
Igual ao comando anterior, mas especificando explicitamente o século ( 20 ).
toque em 195003040506.59 file1.txt
Defina o atime de file1.txt como 4 de março de 1950, 5:06 e 59 segundos. O ctime está definido para a hora atual do sistema. O mtime não é alterado.
Verificando os horários dos arquivos com stat
Você pode verificar os horários de um arquivo usando o comando stat :
stat file.txt
stat: não é possível stat 'file.txt': esse arquivo ou diretório não existe
toque em file.txt; stat file.txt
Arquivo: 'file.txt' Tamanho: 0 Blocos: 0 Bloco IO: 4096 arquivo vazio regular Dispositivo: 802h / 2050d Inode: 668116 Links: 1 Acesso: (0664 / -rw-rw-r--) Uid: (1001 / hope) Gid: (1002 / hope) Acesso: 2017-10-25 21: 35: 17.368254343 -0400 Modificar: 2017-10-25 21: 35: 17.368254343 -0400 Alteração: 2017-10-25 21: 35: 17.368254343 -0400 Nascimento: -
toque -ad "12 de julho de 1895" file.txt; stat file.txt
Arquivo: 'file.txt' Tamanho: 0 Blocos: 0 Bloco IO: 4096 arquivo vazio regular Dispositivo: 802h / 2050d Inode: 668116 Links: 1 Acesso: (0664 / -rw-rw-r--) Uid: (1001 / hope) Gid: (1002 / hope) Acesso: 1895-07-12 00: 00: 00.000000000 -0500 Modificar: 2017-10-25 21: 35: 17.368254343 -0400 Alterar: 2017-10-25 21: 35: 55.487636366 -0400 Nascimento: -
toque -mt 198307010000 file.txt; stat file.txt
Arquivo: 'file.txt' Tamanho: 0 Blocos: 0 Bloco IO: 4096 arquivo vazio regular Dispositivo: 802h / 2050d Inode: 668116 Links: 1 Acesso: (0664 / -rw-rw-r--) Uid: (1001 / hope) Gid: (1002 / hope) Acesso: 1895-07-12 00: 00: 00.000000000 -0500 Modificar: 1983-07-01 00: 00: 00.000000000 -0400 Mudança: 2017-10-25 21: 36: 59.654589018 -0400 Nascimento: -
para formatospec em 'nome do arquivo: \ t% n' 'acessado: \ t% x' 'modificado: \ t% y' 'alterado: \ t% z'; do stat --printf = "$ formspec \ n" file.txt; feito
nome do arquivo: file.txt Acessado: 1895-07-12 00: 00: 00.000000000 -0500 modificado: 1983-07-01 00: 00: 00.000000000 -0400 Alterado: 2017-10-25 21: 36: 59.654589018 -0400
Nota: Você pode observar neste conjunto de exemplos que, quando a hora foi alterada para 12 de julho de 1895, o fuso horário foi alterado. Isso ocorre porque o horário de verão (DST) não foi promulgado na América do Norte até 1º de abril de 1918.
Comandos relacionados
data – exibe ou define a data e hora atuais.
stat – Exibe o status de um arquivo ou sistema de arquivos.