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?

NDA
la source

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
Isaïe
la source
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.

balki
la source
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*.*
Indianwebdevil
la source
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
Nider
la source
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
UN B
la source
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 
Sergiy Kolodyazhnyy
la source