Menu Fermer

La commande touch Linux : utilisations et exemples

La commande touch est une commande de base Linux qui vous permet de mettre à jour les horodatages sur les fichiers et les répertoires existants, ainsi que la création de nouveaux fichiers vides.

Dans ce tutoriel, je vous montre comment utiliser la commande touch via des exemples pratiques et des explications détaillées des options de commande les plus courantes.

La commande touch Linux : utilisations et exemples

Comment utiliser la commande touch de Linux

Voici la syntaxe de la commande touch :

touch <options> <Fichier ou répertoire>

Comme beaucoup de commandes Linux, celles-ci possèdent plusieurs options.

OPTIONSDESCRIPTION
-aChanger le la date d’accès au fichier
-c
–no-create
Eviter de créer un nouveau fichier
-d=<texte>
–date=<texte>
Changer la date du fichier en spécifiant un horodatage
-h
–no-dereference
Changer la date d’un fichier symbolique
-mChanger la date de modification d’un fichier
-r=<fichier>
–reference=<fichier>
Modifier un horodatage à l’horodatage du fichier référencé
-t <timestamp>Modifie un horodatage, où le timestamp est le format de date / heure
–helpAfficher l’aide de la commande touch
-v
–version
Afficher la version de la commande touch
Les options de la commande touch

Un fichier à Linux a trois horodatages :

  • atime (accesst time – Date d’accès) – La dernière fois que le fichier a été accédé / ouvert par une commande ou une application telle que cat, vim, grep. La commande ls -lu affiche l’atime pour les fichiers
  • mtime (modify time – Date de modification) – La dernière fois que le contenu du fichier a été modifié. La commande ls -l affiche le mtime pour les fichiers
  • ctime (change time – Date de changement) – La dernière fois que l’attribut, métadonnées le contenu du fichier a été modifié. L’attribut inclut les autorisations de fichier, la propriété de fichier ou l’emplacement du fichier. La commande ls -lc affiche le ctime pour les fichiers

Pour afficher l’état du fichier, y compris les horodatages, utilisez la commande stat :

stat <Fichier>
Afficher les informations d'un fichier avec la commande stat Linux

Créer un fichier avec la commande touch

L’utilisation basique de touch est de créer un fichier.
La syntaxe est la suivante :

touch <Fichier>

Par exemple pour créer test, faites comme ceci :

touch test
Créer un fichier avec la commande touch

Créer plusieurs fichiers avec la commande touch

Il est tout à fait possible de créer plusieurs fichiers à la fois.
Voici la syntaxe à utiliser :

touch <Fichier> <Fichier1> <Fichier2>

Par exemple pour créer les fichiers test1, test2 et test3 :

touch test1 test2 test3
Créer plusieurs fichiers avec la commande touch

Un moyen utile d’appliquer le contact est de créer de gros lots de fichiers.
Pour ce faire, ajoutez des accolades et indiquez le premier et le dernier élément en plus du nom de fichier :

touch <Fichier{<début>..<fin>}>

Par exemple, pour créer dix fichiers avec la numérotation annexée, exécuter :

touch test{1..10}
Créer plusieurs fichiers avec la commande touch

La commande fonctionne également avec des lettres. Par exemple :

touch test_{a..j}
Créer plusieurs fichiers avec la commande touch

Définir un horodatage spécifique (timestamp)

Utilisez la commande touch pour définir un horodatage spécifique pour un fichier existant, par exemple :

touch -t <timestamp> <fichier>

Le format TIMESTAMP suit un motif spécifique avec le format de date anglophone :

[[CC]YY]MMDDhhmm[.ss]
  • CC – les deux premiers chiffres pour une année
  • YY – les deux derniers chiffres pour une année
  • MM – le mois
  • DD – la journée
  • hh – l’heure mm – les minutes
  • SS – les secondes

Les chiffres des crochets sont facultatifs. Lorsque vous utilisez le format d’année à deux chiffres, le réglage de YY à un nombre compris entre 0 et 68 assume automatiquement CC est 20, tandis que 69-99 supposons CC est 19.

Par exemple, pour modifier l’horodatage pour un fichier appelé Test à minuit 1er janvier 1999, exécutez :

touch -t 199901010000 test

Utilisez l’option –full-time avec ls pour voir les détails de l’horodatage.

Définir un horodatage spécifique (timestamp) avec la commande touch

Définir l’horodatage d’un fichier à l’aide de date

La commande touch utilise l’option -d pour définir un horodatage à l’aide d’une chaîne de date. La syntaxe est :

touch -d <string> <Fichier>

La chaîne de date est un format de temps flexible et accepte de nombreuses formes textuelles différentes lisibles par l’homme. Quelques exemples incluent:

  • Dates de calendrier, telles que le 19 août 2020. Temps de la journée, comme 21h27 ou 8h02
  • Jours de la semaine, tels que le dimanche, lundi, etc
  • Heure relative, comme il y a 5 ans, hier, mardi prochain, etc

Par exemple, changez l’horodatage à l’aide de l’option -d pour demain :

touch -d tomorrow test
Définir l'horodatage d'un fichier à l'aide de date et commande touch

Changer la date d’accès d’un fichier par la date courante

Utilisez l’option -a pour modifier l’accès d’un fichier :

touch -a <Fichier>

Par exemple, pour montrer l’heure d’accès d’un fichier avec ls, utilisez l’option -lu, exécuter :

ls -lu
Changer la date d'accès d'un fichier par la date courante avec la commande touch

Ensuite, modifiez l’heure d’accès du fichier nommé Test avec :

touch -a test

Enfin, affichez le temps changé en exécutant :

ls -lu
Changer la date d'accès d'un fichier par la date courante avec la commande touch

Changer la date d’accès d’un fichier par une valeur spécifique

Modifier l’heure d’accès à un horodatage spécifique en combinant les options -a et -t :

touch -at <horodatage> <fichier>

Vérifiez le temps d’accès pour les fichiers avant de le changer :

ls -lu

Modifiez la durée d’accès du test de fichier à minuit le 1er janvier 1999, en ajoutant l’horodatage :

touch -at 9901010000 test

Enfin, vérifiez l’heure d’accès après la modification :

ls -lu
Changer la date d'accès d'un fichier par une valeur spécifique avec la commande touch

Modifier la date de modification à l’heure courante

La commande touch offre une option pour modifier la durée de modification. La syntaxe de base est la suivante:

touch -m <fichier>

À titre d’exemple, vérifiez le mtime d’une fichier avant de changer l’horodatage:

ls -l

Ensuite, modifiez la durée de modification du fichier de test :

touch -m test

Le mtime du fichier après la modification par touch :

ls -l
Modifier la date de modification à l'heure courante avec la commande touch

Changer la date de modification par une date spécifique

Combiner l’option -m avec -t pour indiquer explicitement l’horodatage de modification. La syntaxe générale est:

touch -mt <timestamp> <filename>

Ensuite pour vérifier le mtime du fichier avant de le changer:

ls -l

Changer l’heure de modification à minuit le 1er janvier 1999, en cours d’exécution :

touch -mt 9901010000 test

Enfin, revérifiez l’heure de modification:

ls -l
Changer la date de modification par une date spécifique avec la commande touch

L’ajout de l’option -t met à jour l’heure de modification à une valeur spécifique.

Changer à la fois la date de modification et date d’accès

L’utilitaire touch permet de modifier la modification et l’heure d’accès avec une seule commande.
Pour ce faire, utilisez la commande suivante :

touch -am <filename>

Avant de changer l’atime et mtime, vérifiez la date de modification et date d’accès avec ls :

ls -lu
ls -l

Ensuite, changez les deux fois pour le fichier de test à la date actuelle :

touch -am test

Vérifiez l’atime et mtime après le changement :

ls -lu
ls -l
Changer à la fois la date de modification et date d'accès avec la commande touch

Définir l’horodatage d’un fichier avec la date d’un autre fichier

La commande touch offre une option utile pour modifier l’horodatage d’un fichier basé sur l’horodatage d’un autre fichier.

Pour effectuer un tel changement, utilisez la commande suivante :

touch -r <fichier reference> <fichier>

Par exemple, créez un nouveau fichier et référencez l’horodatage d’un fichier de test existant :

touch -r test nouveau_test

Vérifiez l’horodatage pour les deux fichiers avec :

ls -l
Définir l'horodatage d'un fichier avec la date d'un autre fichier avec touch

Changer horodatage et date d’un lien symbolique

La commande touch permet de modifier l’horodatage des liens symboliques sans modifier l’horodatage du fichier référencé.
Utilisez l’option -h pour modifier l’heure d’un lien symbolique :

touch -h <filename>

Par exemple, vérifiez l’heure d’un lien symbolique existant avant toute modification :

ls -l

Changez l’horodatage pour le lien symbolique à l’heure actuelle :

touch -h link

Enfin, revérifiez l’horodatage pour confirmer le changement :

ls -l

Sans l’option -h, la commande touch ne modifie que l’horodatage du fichier de test.

L’horodatage du lien symbolique reste inchangé dans ce cas.

Éviter de créer un nouveau fichier

Par défaut, touch génère un nouveau fichier s’il n’existe pas.
Cependant, certaines situations nécessitent de remplacer cette fonctionnalité. Ajoutez l’option -c pour éviter de créer un nouveau fichier lorsque vous appelez la commande :

touch -c <filename>

Par exemple, essayez d’exécuter touch avec l’option -c avec un fichier inexistant :

touch -c nouveau_fichier_test

Enfin utilisez la commande ls pour confirmer que le fichier n’est pas là :

ls -l
Eviter de créer un nouveau fichier  avec la commande touch