Créer un fichier Linux : commandes touch, echo et cat expliquées 🐧

Pour créer un fichier Linux vide depuis le terminal, la commande touch fichier.txt suffit. Si un fichier avec du contenu est nécessaire dès sa création, echo "texte" > fichier.txt fait le travail en une seule ligne. Voici comment créer un fichier texte, gérer plusieurs fichiers à la fois, éviter d’écraser du contenu existant, et résoudre les erreurs de permissions les plus courantes.
Créer un fichier vide avec touch
La commande touch est la méthode la plus simple pour créer un fichier vide sous Linux :
touch fichier.txt
Si le fichier n’existe pas encore dans le répertoire courant, il est créé immédiatement, sans aucun contenu. Si un fichier portant déjà ce nom existe, touch ne le modifie pas réellement : elle actualise simplement ses horodatages d’accès et de modification, sans toucher au contenu déjà présent. Ce comportement distingue touch des commandes de redirection, qui peuvent, elles, écraser un fichier existant.
Créer plusieurs fichiers en une seule commande
Il est possible de créer plusieurs fichiers d’un coup en indiquant simplement plusieurs noms à la suite :
touch fichier1.txt fichier2.txt fichier3.txt
Chaque nom absent du répertoire courant est créé comme un fichier vide distinct. Cette syntaxe reste utile pour préparer rapidement une structure de fichiers avant de les remplir un par un.
Créer un fichier dans un autre répertoire
Pour créer un fichier ailleurs que dans le dossier courant, il suffit d’indiquer le chemin de fichier Linux complet ou relatif :
touch /home/utilisateur/documents/fichier.txt
Le répertoire cible doit déjà exister : touch ne crée pas automatiquement les dossiers intermédiaires manquants. En l’absence du dossier documents, la commande retourne une erreur plutôt que de le créer à la volée.
Créer un fichier avec un nom contenant des espaces
Un nom de fichier avec des espaces doit être placé entre guillemets pour être interprété correctement par le terminal Linux :
touch "nouveau fichier.txt"
Sans guillemets, le terminal considérerait chaque mot séparé par un espace comme un argument distinct, ce qui créerait plusieurs fichiers portant des noms différents au lieu d’un seul fichier au nom complet.
Créer un fichier avec du contenu grâce à echo ou printf
Pour créer un fichier texte contenant déjà une ligne de texte, la commande echo combinée à une redirection reste la solution la plus rapide :
echo "Premier contenu du fichier" > fichier.txt
La commande printf offre un contrôle plus précis sur le formatage, notamment pour insérer des sauts de ligne explicites :
printf "Ligne 1\nLigne 2\n" > fichier.txt
Ces deux commandes créent le fichier s’il n’existe pas, ou remplacent entièrement son contenu s’il existe déjà.
Différence entre la redirection > et >>
Cette distinction est essentielle pour éviter de perdre du contenu par erreur. Le symbole > remplace intégralement le contenu du fichier de destination, tandis que >> ajoute le nouveau texte à la fin du fichier sans toucher à ce qui existait déjà :
echo "Nouvelle ligne ajoutée" >> fichier.txt
Utiliser > sur un fichier existant sans faire attention peut effacer instantanément tout son contenu précédent, sans confirmation ni possibilité de récupération. En cas de doute, >> reste le choix le plus sûr.
Saisir plusieurs lignes avec cat et un here-document
Pour rédiger un fichier texte de plusieurs lignes directement depuis le terminal, la commande cat combinée à un here-document (<<) permet une saisie interactive :
cat << EOF > fichier.txt
Première ligne
Deuxième ligne
Troisième ligne
EOF
Le terminal enregistre chaque ligne saisie jusqu’à ce que le mot-clé EOF soit retapé seul sur une ligne, signalant la fin de la saisie. Cette méthode évite d’ouvrir un éditeur de texte complet pour un contenu court à insérer rapidement.
Créer et modifier un fichier avec nano ou vim
Pour un contenu plus long ou nécessitant des modifications ultérieures, un éditeur de texte en ligne de commande reste plus pratique qu’une simple redirection. L’éditeur nano, réputé pour sa simplicité, s’ouvre directement sur le fichier concerné, qu’il existe déjà ou non :
nano fichier.txt
Le fichier est automatiquement créé lors de l’enregistrement si son nom n’existait pas encore. vim propose un fonctionnement similaire, avec une prise en main plus technique mais des fonctionnalités d’édition plus avancées, appréciées pour des modifications répétées sur de gros fichiers.
Vérifier qu’un fichier a bien été créé
Une fois le fichier créé, plusieurs commandes permettent de confirmer son existence et son contenu :
ls fichier.txt
cat fichier.txt
file fichier.txt
ls confirme la présence du fichier dans le répertoire, cat affiche son contenu directement dans le terminal, et file indique le type de fichier détecté, utile pour vérifier qu’un fichier censé être un simple texte n’a pas été créé avec un contenu inattendu.
Permissions et utilisation de sudo
Créer un fichier Linux nécessite de disposer des droits d’écriture sur le répertoire cible. Sans cette permission, une tentative de création échoue avec une erreur explicite. Pour un répertoire système protégé, sudo permet d’élever temporairement les privilèges :
sudo touch /etc/exemple.conf
Pour insérer directement du contenu dans un fichier nécessitant des droits administrateur, une redirection classique précédée de sudo ne fonctionne pas toujours comme attendu, car seule la commande echo est exécutée avec les privilèges élevés, pas la redirection elle-même. La commande tee avec sudo reste alors plus fiable :
echo "contenu" | sudo tee /etc/exemple.conf
Erreurs fréquentes lors de la création d’un fichier
Quelques problèmes reviennent régulièrement lors de cette opération sous Linux :
- Permission denied : ce message apparaît lorsque l’utilisateur ne dispose pas des droits d’écriture nécessaires dans le répertoire cible, nécessitant soit un changement de dossier, soit l’usage réfléchi de
sudo. - Chemin inexistant : indiquer un dossier qui n’existe pas encore provoque une erreur, car
touchne crée jamais automatiquement les répertoires intermédiaires manquants. - Écrasement involontaire : utiliser
>au lieu de>>sur un fichier contenant déjà des informations importantes efface silencieusement tout son contenu précédent, sans avertissement préalable.
Vérifier le chemin, les permissions du dossier cible et le bon symbole de redirection avant d’exécuter une commande évite la grande majorité des erreurs rencontrées lors de la création d’un fichier sous Linux.
