Comment vérifier si un fichier existe sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si un fichier existe sous Linux en utilisant diverses méthodes. Nous commencerons par explorer la commande test, un outil fondamental pour évaluer des conditions dans les scripts shell, et nous montrerons comment utiliser son option -f pour vérifier la présence d'un fichier.

Après avoir étudié la commande test, vous découvrirez comment exploiter la sortie de la commande ls pour confirmer l'existence d'un fichier et, enfin, vous plongerez dans la commande stat pour obtenir des informations détaillées sur un fichier, confirmant ainsi davantage sa présence et ses propriétés.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/test("Condition Testing") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/echo -.-> lab-558677{{"Comment vérifier si un fichier existe sous Linux"}} linux/test -.-> lab-558677{{"Comment vérifier si un fichier existe sous Linux"}} linux/ls -.-> lab-558677{{"Comment vérifier si un fichier existe sous Linux"}} linux/grep -.-> lab-558677{{"Comment vérifier si un fichier existe sous Linux"}} end

Vérifier l'existence d'un fichier à l'aide de la commande test

Dans cette étape, vous apprendrez à vérifier si un fichier existe sous Linux en utilisant la commande test. La commande test est une commande intégrée au shell qui évalue des expressions conditionnelles. Elle est souvent utilisée dans les scripts shell pour prendre des décisions en fonction de l'existence ou des propriétés de fichiers et de répertoires.

Tout d'abord, créons un simple fichier dans votre répertoire actuel (~/project). Nous utiliserons la commande echo pour insérer du texte dans un fichier nommé my_file.txt.

Tapez la commande suivante et appuyez sur Entrée :

echo "This is a test file." > my_file.txt

Cette commande crée un fichier nommé my_file.txt dans votre répertoire actuel (~/project) et écrit le texte "This is a test file." dedans. Le symbole > redirige la sortie de la commande echo vers le fichier spécifié.

Maintenant, utilisons la commande test pour vérifier si my_file.txt existe. L'option -f avec test vérifie si un fichier existe et s'il s'agit d'un fichier ordinaire.

Tapez la commande suivante et appuyez sur Entrée :

test -f my_file.txt

La commande test ne produit aucune sortie si la condition est vraie (le fichier existe). Si le fichier n'existait pas, elle renverrait un code de sortie non nul, qui est généralement utilisé en scripting.

Pour voir le résultat de la commande test, vous pouvez vérifier le code de sortie de la commande précédente en utilisant echo $?. Un code de sortie de 0 signifie que la commande a réussi (la condition était vraie), et un code de sortie non nul signifie qu'elle a échoué (la condition était fausse).

Tapez la commande suivante et appuyez sur Entrée :

echo $?

Vous devriez voir la sortie 0, indiquant que la commande test -f my_file.txt a réussi car le fichier existe.

Maintenant, essayons de vérifier l'existence d'un fichier qui n'existe pas, comme non_existent_file.txt.

Tapez la commande suivante et appuyez sur Entrée :

test -f non_existent_file.txt

Encore une fois, test ne produira pas de sortie si la condition est fausse. Vérifions le code de sortie :

echo $?

Cette fois, vous devriez voir une sortie de 1 (ou un autre nombre non nul), indiquant que la commande test -f non_existent_file.txt a échoué car le fichier n'existe pas.

Comprendre la commande test et vérifier les codes de sortie est fondamental pour écrire des scripts shell capables de prendre des décisions en fonction du système de fichiers.

Cliquez sur Continue pour passer à l'étape suivante.

Vérifier la présence d'un fichier grâce à la sortie de la commande ls

Dans cette étape, vous apprendrez une autre méthode courante pour vérifier la présence de fichiers et de répertoires : en utilisant la sortie de la commande ls. La commande ls liste le contenu d'un répertoire. En combinant ls avec d'autres commandes, vous pouvez efficacement vérifier si un fichier spécifique existe.

Tout d'abord, listons le contenu de votre répertoire actuel (~/project) en utilisant la commande ls.

Tapez la commande suivante et appuyez sur Entrée :

ls

Vous devriez voir my_file.txt figurant dans la sortie, car vous l'avez créé à l'étape précédente.

my_file.txt

Maintenant, essayons de vérifier spécifiquement la présence de my_file.txt en utilisant ls et la commande grep. grep est un outil puissant pour rechercher des motifs de texte. Nous pouvons rediriger la sortie de ls vers grep pour voir si le nom de fichier apparaît dans la liste.

Le symbole de pipe | prend la sortie de la commande de gauche et l'envoie en tant qu'entrée à la commande de droite.

Tapez la commande suivante et appuyez sur Entrée :

ls | grep my_file.txt

Si my_file.txt existe, grep le trouvera dans la sortie de ls et affichera la ligne contenant le nom de fichier.

my_file.txt

Si le fichier n'existait pas, grep ne trouverait pas le motif et ne produirait aucune sortie.

De même que pour la commande test, vous pouvez vérifier le code de sortie de la commande grep pour déterminer si le fichier a été trouvé. grep renvoie 0 s'il trouve une correspondance et 1 s'il ne la trouve pas.

Tapez la commande suivante et appuyez sur Entrée :

echo $?

Vous devriez voir 0, indiquant que grep a trouvé my_file.txt.

Maintenant, essayons de vérifier à nouveau la présence du fichier qui n'existe pas en utilisant ls et grep.

Tapez la commande suivante et appuyez sur Entrée :

ls | grep non_existent_file.txt

Cette commande ne produira aucune sortie car non_existent_file.txt n'est pas dans la liste du répertoire.

Vérifiez le code de sortie :

echo $?

Vous devriez voir 1, indiquant que grep n'a pas trouvé non_existent_file.txt.

L'utilisation de ls et de grep est un modèle très courant en scripting shell pour vérifier l'existence de fichiers et de répertoires, surtout lorsque vous avez besoin de traiter davantage la sortie.

Cliquez sur Continue pour passer à l'étape suivante.

Confirmer les détails d'un fichier avec la commande stat

Dans cette étape, vous allez apprendre à utiliser la commande stat, qui fournit des informations détaillées sur un fichier ou un système de fichiers. Alors que test et ls peuvent confirmer l'existence d'un fichier, stat vous donne des métadonnées telles que la taille, les autorisations, le propriétaire et les horodatages.

Utilisons stat pour obtenir des informations sur le fichier my_file.txt que vous avez créé précédemment dans le répertoire ~/project.

Tapez la commande suivante et appuyez sur Entrée :

stat my_file.txt

Vous verrez une sortie similaire à celle-ci (les détails tels que la taille, les dates et le périphérique varieront) :

  File: my_file.txt
  Size: 21        Blocks: 8          IO Block: 4096   regular file
Device: ---h/-----d Inode: ---       Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 5000/   labex)   Gid: ( 5000/   labex)
Access: 2023-10-27 10:00:00.000000000 +0000
Modify: 2023-10-27 10:00:00.000000000 +0000
Change: 2023-10-27 10:00:00.000000000 +0000
 Birth: 2023-10-27 10:00:00.000000000 +0000

Décortiquons certaines des informations clés fournies par stat :

  • File : Le nom du fichier.
  • Size : La taille du fichier en octets.
  • Access : Les autorisations du fichier (en notation octale et symbolique), l'identifiant utilisateur (Uid) et l'identifiant de groupe (Gid) du propriétaire du fichier.
  • Access, Modify, Change, Birth : Des horodatages indiquant la dernière fois que le fichier a été consulté, modifié, que ses métadonnées ont été changées et la date de création (date de naissance).

Si vous essayez d'utiliser stat sur un fichier qui n'existe pas, cela produira un message d'erreur.

Tapez la commande suivante et appuyez sur Entrée :

stat non_existent_file.txt

Vous verrez un message d'erreur comme celui-ci :

stat: cannot stat 'non_existent_file.txt': No such file or directory

La commande stat est incroyablement utile lorsque vous avez besoin de plus que simplement confirmer l'existence d'un fichier. Elle fournit des métadonnées précieuses qui sont essentielles pour l'administration système, la programmation de scripts et la résolution de problèmes.

Vous avez maintenant appris trois façons différentes de vérifier l'existence de fichiers sous Linux : en utilisant test, ls avec grep et stat. Chaque méthode a ses forces et convient à différentes situations.

Cliquez sur Continue pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, vous avez appris à vérifier si un fichier existe sous Linux en utilisant diverses méthodes. Vous avez d'abord exploré la commande test avec l'option -f, en comprenant comment interpréter son code de sortie (0 pour vrai, non nul pour faux) pour déterminer la présence d'un fichier.

Ensuite, vous avez appris à vérifier l'existence d'un fichier en examinant la sortie de la commande ls et à obtenir des informations détaillées sur un fichier, y compris son existence, en utilisant la commande stat. Ces techniques offrent différents niveaux de détail et sont utiles dans diverses situations pour confirmer la présence et les propriétés des fichiers dans un environnement Linux.