GNU/Linux >> Tutoriels Linux >  >> Linux

Comment obtenir la date/heure de création du fichier dans Bash/Debian ?

Malheureusement, votre quête ne sera généralement pas possible, car il n'y a que 3 valeurs de temps distinctes stockées pour chacun de vos fichiers, comme défini par la norme POSIX (voir Définitions de base section 4.8 Mise à jour des heures de fichiers)

Chaque fichier a trois horodatages associés distincts :l'heure du dernier accès aux données, l'heure de la dernière modification des données et l'heure de la dernière modification de l'état du fichier. Ces valeurs sont renvoyées dans la structure des caractéristiques du fichier struct stat , comme décrit dans .

EDIT :Comme mentionné dans les commentaires ci-dessous, selon le système de fichiers utilisé, les métadonnées peuvent contenir la date de création du fichier. Notez cependant que le stockage d'informations de ce type n'est pas standard. En dépendre peut entraîner des problèmes de portabilité lors du déplacement vers un autre système de fichiers, au cas où celui qui est réellement utilisé le stocke de toute façon.


la réponse de mikyra est bonne. Le fait est tout comme ce qu'il a dit.

[[email protected] test]$ stat test.txt
  File: `test.txt'
  Size: 0               Blocks: 8          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 588720      Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  500/   jason)   Gid: (  500/   jason)
Access: 2013-03-14 01:58:12.000000000 -0700
Modify: 2013-03-14 01:58:12.000000000 -0700
Change: 2013-03-14 01:58:12.000000000 -0700

si vous voulez vérifier quel fichier a été créé en premier, vous pouvez structurer votre nom de fichier en ajoutant la date système lorsque vous créez une série de fichiers.


Notez que si votre système de fichiers est monté avec noatime pour des raisons de performances, alors atime affichera probablement l'heure de création. Étant donné que noatime entraîne une augmentation massive des performances (en supprimant une écriture sur disque à chaque fois qu'un fichier est lu), il peut s'agir d'une option de configuration judicieuse qui vous donne également les résultats souhaités.


ls -i file #output is for me 68551981
debugfs -R 'stat <68551981>' /dev/sda3 # /dev/sda3 is the disk on which the file exists

#results - crtime value
[[email protected] ~]# debugfs -R 'stat <68551981>' /dev/sda3
debugfs 1.41.12 (17-May-2010)
Inode: 68551981   Type: regular    Mode:  0644   Flags: 0x80000
Generation: 769802755    Version: 0x00000000:00000001
User:     0   Group:     0   Size: 38973440
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 76128
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x526931d7:1697cce0 -- Thu Oct 24 16:42:31 2013
 atime: 0x52691f4d:7694eda4 -- Thu Oct 24 15:23:25 2013
 mtime: 0x526931d7:1697cce0 -- Thu Oct 24 16:42:31 2013
**crtime: 0x52691f4d:7694eda4 -- Thu Oct 24 15:23:25 2013**
Size of extra inode fields: 28
EXTENTS:
(0-511): 352633728-352634239, (512-1023): 352634368-352634879, (1024-2047): 288392192-288393215, (2048-4095): 355803136-355805183, (4096-6143): 357941248-357943295, (6144
-9514): 357961728-357965098

Linux
  1. Comment faire un Ls puis trier les résultats par date de création ?

  2. Linux – Comment trouver la date de création du fichier ?

  3. Linux – Comment obtenir la date de création d'un fichier sur un volume logique Ntfs ?

  4. Obtenir l'âge du fichier donné ?

  5. Modifier la date de création du fichier

Comment lire des fichiers ligne par ligne dans Bash

Comment installer Go sur Debian 9

Comment lire un fichier ligne par ligne dans Bash

Comment rediriger stderr vers stdout dans Bash

Comment obtenir la date et l'heure actuelles en JavaScript

Comment changer la date, l'heure et le fuseau horaire dans Debian 10