Alterar os atributos “Data de criação” e “Last Modified” de um arquivo para outro arquivo

35

Estou usando o cap de mesclagem para criar um arquivo pcap de mesclagem de 15 arquivos. Para o arquivo mesclado, alterei o nome para o primeiro dos 15 arquivos. Mas eu também gostaria de alterar os atributos do arquivo mesclado como "Data de criação" e "Última modificação" para a do primeiro. Há alguma maneira de fazer isso?

FILES_dcn=($(find  $dir_dcn -maxdepth 1 -type f -name "*.pcap"  -print0 | xargs -0 ls -lt | tail -15 | awk '{print $9}'))
TAG1_dcn=$(basename "${FILES_dcn[14]}" | sed 's/.pcap//')
mergecap -w  "${dir_dcn}"/merge_dcn.pcap "${FILES_dcn[@]}"
mv  "${dir_dcn}"/merge_dcn.pcap  "${dir_dcn}"/"${TAG1_dcn}".pcap

Eu tento acessar os arquivos mesclados em um servidor samba (Ubuntu). Para que uma função extractor possa acessar auto extraia os arquivos para a pasta D. Mas como a data criada será alterada para o arquivo mesclado, a extração falhará. Existe alguma maneira de corrigir isso?

    
por Jishnu U Nair 07.03.2014 / 14:51

2 respostas

62

Você pode usar o comando touch junto com a opção -r para aplicar os atributos de outro arquivo a um arquivo.

NOTA: Não existe data de criação no Unix, só há acesso, modificação e alteração. Veja este P & D Q & A intitulado: obter a idade do arquivo fornecido para mais detalhes.

$ touch -r goldenfile newfile

Exemplo

Por exemplo, aqui está um goldenfile que foi criado com algum timestamp arbitrário.

$ touch -d 20120101 goldenfile
$ ls -l goldenfile 
-rw-rw-r--. 1 saml saml 0 Jan  1  2012 goldenfile

Agora eu faço um novo arquivo:

$ touch newfile
$ ls -l newfile 
-rw-rw-r--. 1 saml saml 0 Mar  7 09:06 newfile

Agora, aplique os atributos de goldenfile a newfile .

$ touch -r goldenfile newfile 
$ ls -l goldenfile newfile
-rw-rw-r--. 1 saml saml 0 Jan  1  2012 newfile
-rw-rw-r--. 1 saml saml 0 Jan  1  2012 goldenfile

Agora, newfile tem os mesmos atributos.

Modificar via Samba

Eu apenas confirmei que posso fazer isso usando meu laptop Fedora 19, que inclui a versão 1.16.3-2 conectada a um NAS N12000 da Thecus (usa uma versão modificada do CentOS 5.x).

Consegui tocar em um arquivo como mencionei acima e funcionou conforme descrevi. Seu problema provavelmente é um problema com as opções de montagem que estão sendo usadas, o que pode estar omitindo o rastreamento de determinados atributos de tempo, ou talvez esteja relacionado a um desses bugs:

por 07.03.2014 / 15:05
29

A maneira mais fácil - acessada modificada será a mesma:

touch -a -m -t 201512180130.09 fileName.ext

Onde:

-a = accessed
-m = modified
-t  = timestamp - use [[CC]YY]MMDDhhmm[.ss] time format

Se você deseja usar NOW , basta soltar o t e o timestamp

Para verificar se são todos iguais: stat fileName.ext

Veja: touch man

    
por 19.12.2015 / 15:58