web-dev-qa-db-fra.com

Changer les attributs "Date de création" et "Dernière modification" d'un fichier en un autre fichier

J'utilise la fusion cap pour créer un fichier pcap de fusion à partir de 15 fichiers. Pour le fichier fusionné, j'ai changé le nom pour celui du premier des 15 fichiers. Mais je voudrais également changer les attributs du fichier fusionné comme "Date de création" et "Dernière modification" en celui du premier. Y a-t-il un moyen de faire ça?

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

J'essaie d'accéder aux fichiers fusionnés sur un serveur samba (Ubuntu). Pour qu'une fonction d'extraction puisse accéder à l'extraction automatique des fichiers dans le dossier D. Mais comme la date de création sera modifiée pour le fichier fusionné, l'extraction échoue. Est-ce qu'il y a un moyen de réparer ceci?

43
Jishnu U Nair

Vous pouvez utiliser la commande touch avec la commande -r commutateur pour appliquer les attributs d'un autre fichier à un fichier.

REMARQUE: La date de création n'existe pas sous Unix, il n'y a que l'accès, la modification et le changement. Voir cette Q&R U&L intitulée: obtenir l'âge du fichier donné pour plus de détails.

$ touch -r goldenfile newfile

Exemple

Par exemple, voici un goldenfile qui a été créé avec un horodatage arbitraire.

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

Maintenant, je crée un nouveau fichier:

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

Appliquez maintenant les attributs de goldenfile à 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

Maintenant, newfile a les mêmes attributs.

Modifier via Samba

Je viens de confirmer que je peux le faire en utilisant mon ordinateur portable Fedora 19 qui comprend la version 1.16.3-2 connectée à un Thecus N12000 NAS (utilise une version modifiée de CentOS 5.x) .

J'ai pu toucher un fichier comme je l'ai mentionné ci-dessus et cela a fonctionné comme je l'ai décrit. Votre problème est probablement lié aux options de montage utilisées, qui peuvent omettre le suivi de certains attributs temporels, ou peut-être liées à l'un de ces bogues:

83
slm

Manière la plus simple - accessible modifiée sera la même:

touch -a -m -t 201512180130.09 fileName.ext

Où:

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

Si vous souhaitez utiliser NOW déposez simplement t et l'horodatage

Pour vérifier qu'ils sont tous identiques: stat fileName.ext

Voir: toucher l'homme

41
Jadeye