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.