Comment créer un fichier vide à partir de la ligne de commande


190

Comment créer un fichier vide à partir de la ligne de commande?

Réponses:


237

Utilisez la touchcommande:

The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.

Exemple:

touch newfile

14
Vous pouvez également utiliser touch newfile.txtune autre extension (si vous devez spécifier l’extension).
gotqn

@gotqn pour python touch newfile.py et pour ruby ​​newfile.rb?
Kouty

3
Mais s'il newfileexiste déjà et qu'il n'est pas vide, il touch newfilevous laissera un fichier non vide . Peut-être pas ce que tu voulais.
Camille Goudeseune

@CamilleGoudeseune Je pense que s'il newfileexiste déjà, la touchcommande mettra simplement à jour l'horodatage du fichier (ce qui correspond exactement à la commande) sans modifier le contenu du fichier.
C0deDaedalus

Tu n'as pas à penser ça; c'est vrai! Mais ce n'est pas ce que la question a posé.
Camille Goudeseune

81
> newfile

Va également créer un fichier vide. Si le fichier existe déjà, il sera tronqué (vidé). Pour conserver le contenu du fichier, utilisez >>pour l’ajout comme dans:

>> file

Même si le fichier existe, le contenu reste inchangé.

Edit : Si vous n’avez pas de contenu à taper, celui-ci est plus rapide:

user@host$ :> newfile
user@host$ :>> new_or_existing_file

Remarque. :est la commande ici. Cela ne fait pas partie de l'invite.


Maintenant c'est nouveau. Est-ce spécifique à Bash?
Tshepang

Je ne pense pas. Tout shell autorisant la redirection du flux de sortie vers un fichier devrait le prendre en charge. Cela tronquera le fichier s'il existe déjà. touch est sécuritaire à utiliser si vous ne voulez pas le vider.
Balki

Wow maintenant, je pense que cela s'appelle tricher le système
banarun

12
cat /dev/null > file1.ext 

la manière exacte il y a aussi une autre façon

echo "" > file2.ext 

La différence est fichier1.ext sera zéro octet et fichier2.ext serait un octet. Vous pouvez vérifier cela en

ls -l file*.*

10
Non, 'echo ""> "ne crée pas de fichier vide, il crée un fichier contenant une nouvelle ligne. Si, pour une raison quelconque, vous souhaitez utiliser echo pour créer un fichier vide, vous devrez utiliser 'echo -n "">' ou simplement 'echo -n>'
andol le

7

À l'aide de l' viméditeur, vous pouvez également créer un fichier vide.

vim filename

Puis enregistrez

:wq

Eh bien, dans ce cas, pas d’éditeur de texte, mais vim.
Néphente

2

La commande

echo -n > file

crée un fichier vide, si votre version de echoprend en charge le commutateur -n.

Ou vous pouvez utiliser printf

printf '' > file

0

Python one-liner:

$ python -c 'import sys,os;f=sys.argv[1];os.utime(f,None) if os.path.exists(f) else open(f,"a").close' myfile.txt

Fondamentalement, implémentation python de touch.

Nous pouvons le rendre plus court avec ceci:

$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt 
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.