Chaque fichier sous Linux est associé à des horodatages, qui spécifient l'heure du dernier accès, l'heure de la dernière modification et l'heure du dernier changement.
Chaque fois que nous créons un nouveau fichier ou modifions un fichier existant ou ses attributs, ces horodatages seront mis à jour automatiquement.
La commande tactile permet de modifier ces horodatages (heure d'accès, heure de modification et heure de modification d'un fichier).
1. Créer un fichier vide en utilisant le toucher
Vous pouvez créer un fichier vide à l'aide de la commande touch. L'exemple suivant créera un nouveau fichier de zéro octet nommé tgs.txt.
$ touch tgs.txt
Vous pouvez également utiliser l'option -c pour éviter de créer de nouveaux fichiers. Si vous utilisez l'option -c, et si un fichier n'existe pas, touch ne créera pas le fichier.
$ touch -c a.txt
Des commandes telles que la commande ls et la commande find utilisent ces informations d'horodatage pour répertorier et rechercher des fichiers.
Vous pouvez également créer plusieurs fichiers à partir d'une seule commande tactile. L'exemple suivant créera 4 fichiers nommés a, b, c et d.
$ touch a b c d
2. Changer le temps d'accès au fichier en utilisant -a
Nous pouvons modifier le temps d'accès d'un fichier en utilisant l'option -a. Par défaut, il prendra l'heure système actuelle et mettra à jour le champ atime.
Avant l'exécution de la commande tactile :
$ stat tgs.txt File: `tgs.txt' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 801h/2049d Inode: 394283 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/lakshmanan) Gid: ( 1000/lakshmanan) Access: 2012-10-18 23:58:21.663514407 +0530 Modify: 2012-10-18 23:58:21.663514407 +0530 Change: 2012-10-18 23:58:21.663514407 +0530
$ touch -a tgs.txt
Après la commande tactile ci-dessus (veuillez noter que le temps d'accès est modifié) :
$ stat tgs.txt File: `tgs.txt' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 801h/2049d Inode: 394283 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/lakshmanan) Gid: ( 1000/lakshmanan) Access: 2012-10-19 00:08:23.559514525 +0530 Modify: 2012-10-18 23:58:21.663514407 +0530 Change: 2012-10-19 00:08:23.559514525 +0530
3. Modifier l'heure de modification du fichier à l'aide de -m
Vous pouvez changer l'heure de modification d'un fichier en utilisant l'option -m.
$ touch -m *.o
La méthode ci-dessus peut être utilisée pour modifier le mtime de tous les fichiers obj, lors de l'utilisation de l'utilitaire make.
REMARQUE :Il n'est pas possible de modifier l'heure à l'aide de la commande tactile
4. Définir explicitement l'heure d'accès et de modification à l'aide de -t et -d
Au lieu de prendre l'horodatage actuel, vous pouvez spécifier explicitement l'heure à l'aide des options -t et -d.
Le format pour spécifier -t est [[CC]AA]MMJJhhmm[.SS]
$ touch -t [[CC]YY]MMDDhhmm[.SS]
Ce qui suit explique le format ci-dessus :
- CC - Spécifie les deux premiers chiffres de l'année
- YY - Spécifie les deux derniers chiffres de l'année. Si la valeur de YY est comprise entre 70 et 99, la valeur des chiffres CC est supposée être 19. Si la valeur de YY est comprise entre 00 et 37, la valeur des chiffres CC est supposée être 20. Il est pas possible de fixer la date au-delà du 18 janvier 2038.
- MM – Spécifie le mois
- JJ :spécifie la date
- hh - Spécifie l'heure
- mm - Spécifie les minutes
- SS – Spécifie les secondes
Par exemple :
$ touch -a -m -t 203801181205.09 tgs.txt
Vérifiez la modification ci-dessus à l'aide de la commande stat :
$ stat tgs.txt File: `tgs.txt' Size: 3 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 394283 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/lakshmanan) Gid: ( 1000/lakshmanan) Access: 2038-01-18 12:05:09.000000000 +0530 Modify: 2038-01-18 12:05:09.000000000 +0530 Change: 2012-10-19 00:40:58.763514502 +0530
Vous pouvez également utiliser une chaîne pour modifier l'heure
Autre exemple :
$ touch -d "2012-10-19 12:12:12.000000000 +0530" tgs.txt
Pour les développeurs, la commande touch sera vraiment utile lorsque vous travaillez avec Makefiles
5. Copiez l'horodatage d'un autre fichier en utilisant -r
Vous pouvez également prendre un fichier comme référence et mettre à jour l'heure d'autres fichiers, afin que les deux fichiers conservent la même heure.
L'exemple de commande tactile suivant mettra à jour l'horodatage du fichier a.txt avec l'horodatage du fichier tgs.txt.
$ touch a.txt -r tgs.txt