GNU/Linux >> Tutoriels Linux >  >> Linux

Différence entre chat et '>' pour mettre à zéro un fichier ?

Ces deux commandes sont-elles différentes sur la façon dont elles procèdent pour mettre à zéro les fichiers ? Ce dernier est-il une manière plus courte de faire le premier ? Que se passe-t-il dans les coulisses ?

Les deux

$ cat /dev/null > file.txt

$ > file.txt 

rendement

-rw-r--r--  1 user  wheel  0 May 18 10:33 file.txt

Réponse acceptée :

cat /dev/null > file.txt est une utilisation inutile de chat.

En gros cat /dev/null donne simplement cat n'émettant rien. Oui, cela fonctionne, mais cela est mal vu par beaucoup car cela entraîne l'appel d'un processus externe qui n'est pas nécessaire.
C'est une de ces choses qui est courante simplement parce que c'est courant.

En utilisant uniquement > file.txt fonctionnera sur la plupart des shells, mais ce n'est pas complètement portable. Si vous voulez être complètement portable, voici de bonnes alternatives :

true > file.txt
: > file.txt

Les deux : et true ne génèrent aucune donnée et sont des commandes intégrées du shell (alors que cat est un utilitaire externe), ils sont donc plus légers et plus "propres".

Mise à jour :

Comme tylerl l'a mentionné dans son commentaire, il y a aussi le >| file.txt syntaxe.

La plupart des shells ont un paramètre qui les empêchera de tronquer un fichier existant via > . Vous devez utiliser >| Au lieu. Ceci afin d'éviter toute erreur humaine lorsque vous vouliez vraiment ajouter avec >> . Vous pouvez activer le comportement avec set -C .

Donc, avec cela, je pense que la méthode la plus simple, la plus appropriée et la plus portable pour tronquer un fichier serait :

:>| file.txt

Linux
  1. La Différence Entre [[ $a ==Z* ]] Et [ $a ==Z* ] ?

  2. La différence entre "du -sh *" et "du -sh ./*" ?

  3. Différence entre Eot et Eof?

  4. Différence entre [0-9], [[:digit:]] et D ?

  5. La différence entre .exrc et .vimrc ?

Différence entre SAN et NAS

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

Quelle est la différence entre le chat et la commande tactile

Différence entre apt et apt-get expliquée

différence entre le fichier de périphérique et le pilote de périphérique

différence entre les cgroups et les espaces de noms