GNU/Linux >> Tutoriels Linux >  >> Linux

Méthode la plus efficace pour vider le contenu d'un fichier ?

Je connais trois méthodes pour supprimer toutes les entrées d'un fichier.

Ils sont

  • >filename
  • touch filename
  • filename < /dev/null

De ces trois j'abuse de >filename le plus car cela nécessite le moins de frappes.

Cependant, j'aimerais savoir quelle est la plus efficace des trois (s'il existe des méthodes plus efficaces) en ce qui concerne les gros fichiers journaux et les petits fichiers.

De plus, comment fonctionnent les trois codes et suppriment le contenu ?

Modifier  :comme indiqué dans cette réponse, cela ne le fait pas effacez le fichier !

Réponse acceptée :

En fait, la deuxième forme touch filename ne supprime rien du fichier - il crée uniquement un fichier vide s'il n'en existait pas, ou met à jour la date de dernière modification d'un fichier existant.

Et le troisième filename < /dev/null essaie d'exécuter filename avec /dev/null comme entrée.

cp /dev/null filename fonctionne.

Quant à efficace, le plus efficace serait truncate -s 0 filename (voir ici).

Sinon, cp /dev/null filename ou > filename sont bien tous les deux. Ils ouvrent et ferment tous les deux le fichier, en utilisant le paramètre tronquer à l'ouverture. cp ouvre également /dev/null , ce qui le rend légèrement plus lent.

Par contre, truncate serait probablement plus lent que > filename lorsqu'il est exécuté à partir d'un script, car l'exécution de la commande truncate nécessite que le système ouvre l'exécutable, le charge, puis l'exécute.


Linux
  1. Copier le contenu d'un fichier dans le presse-papiers sans afficher son contenu ?

  2. Comment passer le contenu d'un fichier en tant que paramètre de ligne de commande ?

  3. lsinitramfs :liste le contenu du système de fichiers initrd.

  4. Le moyen le plus efficace de copier un fichier sous Linux

  5. Comment obtenir uniquement le nombre de lignes d'un fichier

La différence entre plus, moins et la plupart des commandes

Comment afficher le contenu d'une archive ou d'un fichier compressé sous Linux

Afficher le contenu d'un fichier dans la ligne de commande Linux

Comment obtenir le nom de fichier à partir du chemin complet sous Linux

Python FTP obtient le fichier le plus récent par date

Linux - vérifier s'il y a une ligne vide à la fin d'un fichier