Je sais juste que ls -t
et ls -f
donne le tri différent des fichiers et des sous-répertoires dans un répertoire.
- Quelles sont les différences entre l'horodatage, l'heure de modification et l'heure de création d'un fichier?
- Comment obtenir et modifier ce type d'informations par commandes?
- Pour ce qui est du type d'informations, les gens disent-ils qu'un fichier est "plus récent" que l'autre?
- Quels types d'informations ne modifieront pas le fichier?
Par exemple, j'ai vu quelqu'un écrire:
Par défaut, le programme rsync cherche uniquement à déterminer si la taille et l'horodatage des fichiers sont différents. Peu importe le fichier le plus récent, s’il est différent, il est écrasé. Vous pouvez passer l'indicateur '--update' à rsync, ce qui le fera ignorer les fichiers de la destination s'ils sont plus récents que le fichier de la source, mais uniquement s'ils sont du même type de fichier. Cela signifie que si, par exemple, le fichier source est un fichier standard et que la destination est un lien symbolique, le fichier de destination sera écrasé, quel que soit l'horodatage.
Sur une note de côté, le type de fichier signifie-t-il uniquement les fichiers standard et simlink, et non le type tel que pdf, jpg, htm, txt, etc.?
Réponses:
Il existe 3 types de "timestamps":
Pour afficher cette information, vous pouvez utiliser
stat
ce qui fait partie des coreutils.stat
vous montrera également quelques informations supplémentaires telles que le périphérique, les inodes, les liens, etc.N'oubliez pas que ce type d'informations dépend fortement du système de fichiers et des options de montage. Par exemple, si vous montez une partition avec l'
noatime
option, aucune information d'accès ne sera écrite.Un utilitaire pour changer les horodatages serait
touch
. Certains arguments permettent de décider de l’horodatage à modifier (par exemple -a pour le temps d’accès, -m pour le temps de modification) et d’influencer l’analyse d’un nouvel horodatage donné. Voirman touch
pour plus de détails.touch
peut être utile en combinaison aveccp -u
( "copier uniquement lorsque le fichier SOURCE est plus récent que le fichier de destination ou lorsque le fichier de destination est manquant" ) ou pour la création de fichiers de marqueur vides.la source
ls -l
. Et le type de fichier fait référence à un fichier par rapport à un lien symbolique (ou à d’autres types de fichiers tels que des répertoires ou des périphériques). Ce n'est pas le type de données dans le fichier (texte ou jpeg, etc.).La réponse de echox est valide mais je souhaite ajouter des informations concernant le temps de création du fichier.
Prise en charge du système de fichiers
Certains systèmes de fichiers prennent en charge une entrée supplémentaire dans l'inode en ce qui concerne l'heure de création (ou l'heure de naissance). Je sais que ext4 prend en charge cette fonctionnalité ainsi que JFS et BTRFS .
Cependant, la plupart des outils et des API n'ont pas encore été mis à jour pour lire ces informations supplémentaires. Donc, même si cela pourrait être là, ce n'est pas accessible.
Par exemple, sur Ubuntu 12.04 LTS, je reçois ce qui suit pour un fichier que j'ai créé aujourd'hui:
Vous pouvez voir que la fonction statistique la plus récente a un champ de naissance, bien que la sortie semble incorrecte. Et via debugfs, nous pouvons obtenir les informations (crtime car je suis sur le système de fichiers ext4).
support statx
Depuis le noyau 4.11, il existe maintenant un nouvel appel système statx , en plus d’une meilleure prise en charge des systèmes de fichiers Y2038 ou réseau, qui apporte également quelques fonctionnalités supplémentaires comme l’
btime
accès ou l’heure de naissance (heure de création). Le support pour ext4 devrait être dans la même version 4.11 du noyau.Des correctifs ont été ajoutés pour prendre en charge ce nouvel appel système dans les versions ultérieures du noyau: par exemple, BTRFS et F2FS dans le noyau 4.13, SMB3 dans 4.14, GFS2 dans 4.15, NFS dans 4.16, etc.
La prochaine glibc fournira un appel de fonction pour interroger cette interface (voir les actualités de Phoronix sur le support de glibc statx ). Nous pouvons donc nous attendre à ce que cette fonctionnalité soit bientôt prise en charge dans l’espace utilisateur.
la source