La commande touch est très utile dans une utilisation quotidienne, elle est utile pour tester les transferts de fichiers en créant des fichiers vides pour les tests, avoir la possibilité de créer des fichiers factices pour faire tout ce que nous voulons avec eux peut aider à tout moment par exemple pour tester n'importe quelle commande Linux qui interagit directement avec un fichier, pour des commandes comme essuyer, srm, ou alors déchiqueter vous ne voulez pas essayer de vrais fichiers.
Lorsque nous utilisons la commande toucher avec le nom d'un fichier existant, toucher ne créera pas de nouveau fichier mais mettra à jour les horodatages du fichier. D'un autre côté, changer les horodatages serait utile si nous voulons éviter que quelqu'un sache que nous avons accédé à un fichier en forgeant la date et l'heure réelles de l'accès.
Horodatage
Les fichiers Linux ont 3 horodatages : atime, mtime et ctime.
à l'heure : atime contient des informations sur le moment où le contenu du fichier a été lu avec des outils ou des commandes pour afficher le contenu du fichier comme less, nano, vi, vim, cat, grep, head, etc. L'horodatage change et est mis à jour chaque fois que le fichier est consulté.
mtime: mtime affiche la dernière modification du contenu d'un fichier, y compris son nom, mais pas sa propriété ou ses autorisations, uniquement le fichier lui-même.
ctemps : comme mtime, ctime indique également quand un fichier a été modifié, mais il est également mis à jour lorsque la propriété, le groupe ou l'accès aux autorisations sur un fichier ont été modifiés. Nous pouvons modifier l'atime et le mtime mais nous ne pouvons pas modifier le ctime, l'heure est mise à jour lorsque les autorisations d'un fichier sont modifiées ou lorsque les fichiers sont vraiment lus ou modifiés
Modification de l'horodatage :
Avant de voir les horodatages d'un fichier créons-le en tapant :
$ touch LinuxHintEmptyFile$ ls
LinuxHintVideFichier
Où:
touch = crée un fichier vide appelé LinuxHintEmptyFIle
ls = liste les fichiers dans le répertoire
Maintenant, pour voir les horodatages du fichier dans le type de terminal
$ stat LinuxHintEmptyFileFichier : LinuxHintEmptyFile
Taille : 0 Blocs : 0 Bloc E/S : 4096 fichier vide normal
Appareil : 802h/2050d Inode : 13766630 Liens : 1
Accès : (0644/-rw-r--r--) Uid : ( 1003/linuxhint) Gid : ( 1003/linuxhint)
Accès: 2019-05-14 22:57:09.320314528 +0300
Modifier: 2019-05-14 22:57:09.320314528 +0300
Changement: 2019-05-14 22:57:09.320314528 +0300
Naissance: -
La commande stat affiche les autorisations d'accès, le dernier accès (atime), la dernière modification (mtime) et la dernière modification (ctime).
Comme le fichier a été récemment créé, la date et l'heure sont les mêmes, modifions les autorisations du fichier pour voir la différence de sortie de la statistique :
$ chmod -777 LinuxHintEmptyFile$ stat LinuxHintEmptyFile
Fichier : LinuxHintEmptyFile
Taille : 0 Blocs : 0 Bloc E/S : 4096 fichier vide normal
Appareil : 802h/2050d Inode : 13766630 Liens : 1
Accès : (0000/----------) Uid : ( 1003/linuxhint) Gid : ( 1003/linuxhint)
Accès: 2019-05-14 22:57:09.320314528 +0300
Modifier: 2019-05-14 22:57:09.320314528 +0300
Changement: 2019-05-14 23:23:55.968391139 +0300
Naissance: -
Où:
Chmod -777: supprime toutes les autorisations sur le fichier LinuxHintEmptyFile.
statistique: affiche les horodatages du fichier
Dans l'image ci-dessus, nous pouvons voir que le ctime (Change) a été mis à jour.
Maintenant, modifions le fichier atime à 1/2/99, tapez :
$ touch -a --date="1999-02-01" LinuxHintEmptyFile$ stat LinuxHintEmptyFile
Fichier : LinuxHintEmptyFile
Taille : 0 Blocs : 0 Bloc IO : 4096 fichier vide normal
Appareil : 802h/2050d Inode : 13766630 Liens : 1
Accès : (0000/----------) Uid : ( 1003/linuxhint) Gid : ( 1003/linuxhint)
Accès : 01-02-1999 00:00:00.00000000 +0200
Modifier: 2019-05-14 22:57:09.320314528 +0300
Changement: 2019-05-14 23:34:32.964421513 +0300
Naissance: -
Si vous souhaitez également modifier le type d'accès à la date :
$ touch -a --date="1999-02-01 21:35" LinuxHintEmptyFile$ stat LinuxHintEmptyFile
Fichier : LinuxHintEmptyFile
Taille : 0 Blocs : 0 Bloc E/S : 4096 fichier vide normal
Appareil : 802h/2050d Inode : 13766630 Liens : 1
Accès : (0000/----------) Uid : ( 1003/linuxhint) Gid : ( 1003/linuxhint)
Accès : 01-02-1999 21:35:00.00000000 +0200
Modifier: 2019-05-14 22:57:09.320314528 +0300
Changement: 2019-05-14 23:42:49.016445166 +0300
Naissance: -
Modification de l'horodatage mtime :
La syntaxe pour éditer mtime est la même, pour changer le ctime en 1989.02.01 type :
$ touch -m --date="1989-02-01" LinuxHintEmptyFile$ stat LinuxHintEmptyFile
Fichier : LinuxHintEmptyFile
Taille : 0 Blocs : 0 Bloc E/S : 4096 fichier vide normal
Appareil : 802h/2050d Inode : 13766630 Liens : 1
Accès : (0000/----------) Uid : ( 1003/linuxhint) Gid : ( 1003/linuxhint)
Accès : 01-02-1999 21:35:00.00000000 +0200
Modifier : 1989-02-01 00:00:00.00000000 +0200
Changement: 2019-05-14 23:49:56.560465553 +0300
Naissance: -
Maintenant, vous pouvez voir que la date de modification a été mise à jour, pour mettre à jour également l'heure de la même manière avec le type atime :
$ touch -m --date="1989-02-01 20:22" LinuxHintEmptyFile$ stat LinuxHintEmptyFile
Fichier : LinuxHintEmptyFile
Taille : 0 Blocs : 0 Bloc E/S : 4096 fichier vide normal
Appareil : 802h/2050d Inode : 13766630 Liens : 1
Accès : (0000/----------) Uid : ( 1003/linuxhint) Gid : ( 1003/linuxhint)
Accès : 01-02-1999 21:35:00.00000000 +0200
Modifier : 1989-02-01 20:22:00.00000000 +0200
Changement: 2019-05-14 23:52:10.156471924 +0300
Naissance: -
Créons maintenant un deuxième fichier et utilisons la commande touch pour copier les horodatages d'un fichier sur le deuxième :
$ touch LHFile2$ stat LHFichier2
Fichier : LHFichier2
Taille : 0 Blocs : 0 Bloc E/S : 4096 fichier vide normal
Appareil : 802h/2050d Inode : 13766635 Liens : 1
Accès : (0644/-rw-r--r--) Uid : ( 1003/linuxhint) Gid : ( 1003/linuxhint)
Accès: 2019-05-15 00:02:14.020500718 +0300
Modifier: 2019-05-15 00:02:14.020500718 +0300
Changement: 2019-05-15 00:02:14.020500718 +0300
Nous avons accédé à un fichier, modifié et changé le 2019-05-15 00:02:14, pour copier les horodatages du fichier à partir du fichier LinuxHintEmptyFile type :
$ touch -r LinuxHintEmptyFile LHFile2$ stat LHFichier2
Fichier : LHFichier2
Taille : 0 Blocs : 0 Bloc E/S : 4096 fichier vide normal
Appareil : 802h/2050d Inode : 13766635 Liens : 1
Accès : (0644/-rw-r--r--) Uid : ( 1003/linuxhint) Gid : ( 1003/linuxhint)
Accès : 01-02-1999 21:35:00.00000000 +0200
Modifier : 1989-02-01 20:22:00.00000000 +0200
Changement: 2019-05-15 00:03:11.592503463 +0300
Naissance: -
Comme vous le voyez maintenant, les deux fichiers partagent les mêmes horodatages.
Si nous voulons changer tous les horodatages à l'heure actuelle, nous n'avons qu'à taper « touch » :
$ stat LHFichier2Fichier : LHFichier2
Taille : 0 Blocs : 0 Bloc E/S : 4096 fichier vide normal
Appareil : 802h/2050d Inode : 13766635 Liens : 1
Accès : (0644/-rw-r--r--) Uid : ( 1003/linuxhint) Gid : ( 1003/linuxhint)
Accès : 01-02-1999 21:35:00.00000000 +0200
Modifier : 1989-02-01 20:22:00.00000000 +0200
Changement: 2019-05-15 00:03:11.592503463 +0300
Naissance: -
$ touch LHFile2
$ stat LHFichier2
Fichier : LHFichier2
Taille : 0 Blocs : 0 Bloc E/S : 4096 fichier vide normal
Appareil : 802h/2050d Inode : 13766635 Liens : 1
Accès : (0644/-rw-r--r--) Uid : ( 1003/linuxhint) Gid : ( 1003/linuxhint)
Accès: 2019-05-15 00:08:51.652519679 +0300
Modifier: 2019-05-15 00:08:51.652519679 +0300
Changement: 2019-05-15 00:08:51.652519679 +0300
Naissance: -
Comme vous voyez le deuxième statistique montre la mise à jour à l'heure, mtime et ctemps après la commande toucher.
J'espère que ce tutoriel a été utile comme introduction à la commande tactile, pour plus d'informations sur ce type de commande "homme toucher”, si vous avez des questions, contactez-nous en ouvrant un ticket d'assistance sur LinuxHint Support. Continuez à suivre LinuxHint pour plus de conseils et de mises à jour sur Linux.