Use o comando touch para definir o tempo de modificação de um arquivo para a época do Unix

2

Editar: Melhor pergunta: como usar somente o comando touch para definir o horário de modificação de um arquivo para a época do unix?

Eu sei que o valor unix epoch pode ser recuperado usando "data% s", mas como eu uso o comando touch (e somente esse comando) para definir a hora da modificação para a época do unix?

Editar2:

Então, descobri que isso é executado sem erros:

touch -m -d ”@$(date +%s)” fileexample.txt

Esta é uma forma correta de definir a hora da modificação de um arquivo para a época do Unix?

Pergunta original (desrespeito) ...:

Using the Linux manual for the “touch” command, show the command that you would 
use to set the modification time of a file to the Unix epoch.

Eu entendo que a época do Unix é a quantidade de segundos (ou milissegundos, esqueci) que passou desde a época (1970, 01 de janeiro)

O que a pergunta significa ao dizer: definir a hora " para a época do Unix"?

Então, é basicamente o horário de hoje, ou 1970 01 01, ou ...?

Eu sei que o comando para isso seria:

touch -m -t time file

Mas a que horas eu o configuro?

Além disso, devo usar o formato unix epoch para a hora no comando?

    
por Mandingo 23.11.2018 / 10:38

1 resposta

4

-t não aceita tempo de época, -d

   -d, --date=STRING
          parse STRING and use it instead of current time

   -t STAMP
          use [[CC]YY]MMDDhhmm[.ss] instead of current time

Você precisa usar -d ou --date em vez de -t e precisará colocar @ antes de usar o formato epochtime, conforme descrito em date manpages:

   EXAMPLES
       Convert seconds since the epoch (1970-01-01 UTC) to a date

              $ date --date='@2147483647'

Exemplo:

touch --date=@1442968132 test.txt

Se você quiser alterar apenas o tempo de modificação, use -m ou --time modify ou --time mtime , sem modificar e os horários de acesso serem alterados.

   -m     change only the modification time

   --time=WORD
          change the specified time: WORD is access, atime, or use: equivalent to -a WORD is modify or mtime: equivalent to -m

Exemplos:

$ touch --date=@1442968132 test
$ stat test
  File: test
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd03h/64771d    Inode: 43266017    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    user1)   Gid: ( 1000/    user1)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2015-09-23 02:28:52.000000000 +0200
Modify: 2015-09-23 02:28:52.000000000 +0200
Change: 2018-11-23 11:34:59.893888360 +0100
 Birth: -

$ touch --date=@1542968132 test
$ stat test
  File: test
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd03h/64771d    Inode: 43266017    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    user1)   Gid: ( 1000/    user1)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2018-11-23 11:15:32.000000000 +0100
Modify: 2018-11-23 11:15:32.000000000 +0100
Change: 2018-11-23 11:35:06.893888073 +0100
Birth: -

$ touch -m --date=@1342968132 test
$ stat test
  File: test
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd03h/64771d    Inode: 43266017    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    user1)   Gid: ( 1000/    user1)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2018-11-23 11:15:32.000000000 +0100
Modify: 2012-07-22 16:42:12.000000000 +0200
Change: 2018-11-23 11:35:22.300887441 +0100
    
por 23.11.2018 / 11:21