Come creare un file vuoto dalla riga di comando


190

Come posso creare un file vuoto dalla riga di comando?

Risposte:


237

Usa il touchcomando:

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.

Esempio:

touch newfile

14
Puoi usare anche touch newfile.txtqualche altra estensione (se devi specificare l'estensione).
Gotqn

@gotqn per python touch newfile.py e per ruby ​​newfile.rb?
Kouty,

3
Ma se newfileesiste già e non è vuoto, allora touch newfileti lascerà con un file non vuoto . Forse non è quello che volevi.
Camille Goudeseune,

@CamilleGoudeseune Penso che se newfileesiste già, il touchcomando aggiornerà semplicemente il timestamp del file (che è esattamente il comando per) senza modificare il contenuto del file.
C0de Deedalus,

Non devi pensarlo; è vero! Ma non è quello che ha posto la domanda.
Camille Goudeseune,

81
> newfile

Sarà anche creare un file vuoto. Se il file esiste già, verrà troncato (svuotato). Per conservare il contenuto del file, utilizzare >>per aggiungere come in:

>> file

Anche se il file esiste, il contenuto non sarà toccato.

Modifica : se non hai contenuti da digitare, questo è più veloce:

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

Nota. :è il comando qui. Non fa parte del prompt.


Adesso è nuovo. È specifico per Bash?
Tshepang,

Io non la penso così. Qualsiasi shell che consente il reindirizzamento del flusso di output su un file dovrebbe supportarlo. Questo troncerà il file se esiste già. touch è sicuro da usare se non si desidera svuotarlo.
Balki,

Wow ora penso che questo si chiami imbrogliare il sistema
banarun,

12
cat /dev/null > file1.ext 

il modo esatto esiste anche un altro modo

echo "" > file2.ext 

La differenza è file1.ext sarà zero byte e file2.ext sarebbe un byte. Puoi verificarlo tramite

ls -l file*.*

10
No, 'echo "">' non crea un file vuoto, crea un file contenente una nuova riga. Se per qualche motivo vuoi usare echo per creare un file vuoto dovrai usare 'echo -n "">', o semplicemente 'echo -n>'
andol

7

Usando l' vimeditor puoi anche creare un file vuoto.

vim filename

Quindi salva

:wq

Bene, in questo caso non c'è nessun editor di testo ma vim.
Nephente,

2

Il comando

echo -n > file

crea un file vuoto, se la tua versione echosupporta l'opzione -n.

Oppure potresti usare 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

Fondamentalmente, l'implementazione di Python di touch.

Possiamo renderlo più breve con questo:

$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.