Linux : comment créer un fichier d’une taille spécifique ?

I. Présentation

Dans ce tutoriel, nous allons voir comment créer un fichier d'une taille définie sur une machine Linux (Debian, Ubuntu, Rocky Linux, Fedora, etc.) grâce à l'utilisation de la commande "dd" et d'un fichier spécial : /dev/zero.

Que ce soit sous Linux, Windows, ou un autre système, il est intéressant de savoir créer des fichiers vide ayant une taille définie. Pourquoi ? Nous pouvons imaginer plusieurs scénarios et cas d'usages. Par exemple, pour effectuer un transfert de fichiers plus ou moins lourd et voir le taux de transfert sur le réseau, pour tester une restriction au niveau des quotas sur une machine, ou encore pour tester des commandes de recherche fichiers en fonction de leur taille.

Pour atteindre notre objectif, nous allons utiliser la commande « dd » qui est une sorte de couteau suisse permettant de nombreuses opérations dont la création de fichiers avec une taille prédéfinie. Nous allons coupler l'utilisation de la commande "dd" avec le fichier de périphérique "/dev/zero" qui a une particularité : lorsqu'on le lit, il génère des caractères nuls (des zéros). Ainsi, nous allons pouvoir générer plus ou moins de zéros en fonction de la taille de fichier souhaitée.

Passons à la pratique...

Version originale de cet article : 09 juin 2013.

II. Procédure

Voyons comment créer un fichier de 100 Mo, nommé « MonFichier.txt » (stocké dans le répertoire courant) et qui sera constitué de 100 000 blocs de 1 Ko. La seconde commande permet de lister le contenu du répertoire en affichant la taille sous une forme lisible.

dd if=/dev/zero of=MonFichier.txt bs=1k count=100000

Le paramètre « bs » correspond à « block_size » c’est-à-dire la taille d’un bloc et, « count » au nombre de blocs de cette taille qu’on doit créer. En ce qui concerne « if=/dev/zero », on appelle comme fichier d’entrée un fichier spécial qui génère des caractères nuls. De ce fait, le fichier sera rempli de 0.

Créer un fichier taille définie sous Linux avec la commande dd

Partant de ce constant, nous pouvons jouer sur les paramètres "bs" et "count" pour atteindre le même résultat en créant un fichier avec un seul bloc de 100 Mo. Ce qui donnerait :

dd if=/dev/zero of=MonFichier2.txt bs=100M count=1

Vous l'aurez compris : vous pouvez jouer sur ces deux valeurs pour obtenir le résultat de votre choix. Ainsi, nous pouvons facilement créer des fichiers de plusieurs Mo ou Go.

Si vous cherchez à mesurer les performances d'un disque, vous pouvez utiliser la commande "dd" d'une autre façon qui consiste à ajouter le flag "oflag=direct". Voici comment effectuer un test avec 10 blocs de 1 Go :

dd if=/dev/zero of=MonFichier.txt bs=1G count=10 oflag=direct

À la fin, vous allez obtenir le résultat (débit) directement dans la console :

Linux - Commande dd mesurer performances disque

Sachez que vous pouvez remplacer « /dev/zero » par "/dev/random" ou "/dev/urandom" pour remplir un fichier avec des nombres aléatoires, plutôt que d'utiliser des valeurs nulles.

III. Conclusion

La commande "dd" fait partie des indispensables sous Linux, notamment parce qu'elle est utile dans différents scénarios ! Nous pourrions également l'utiliser pour effectuer un effacement sécurisé d'un disque, mais ceci pourra faire l'objet d'un autre article.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5499.Voir tous les posts

3 thoughts on “Linux : comment créer un fichier d’une taille spécifique ?

  • et pour DOS… je ne me souvient plus du nom de l’utilitaire 🙁
    Merci

    Répondre
    • Bonsoir,

      Parlez-vous de cette commande : fsutil file createnew « nom-fichier » « taille » ?

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.