Come creo un nuovo file vuoto in uno script bash?

Sto eseguendo uno script Perl di terze parti scritto in modo tale da richiedere un file di output per il flag di output, -o.

Sfortunatamente, lo script sembra richiedere un file effettivo, ovvero gli utenti devono creare un file vuoto filename.txt con 0 byte e quindi inserire questo file vuoto nella riga di comando dello script

perl script1.pl -o filename.txt 

Domanda: come creerei un file vuoto allinterno di uno script bash? “>

, lo script restituisce un errore che il file” non esiste.

Commenti

Risposta

Usa touch comm e. touch filename.txt.

Commenti

  • echo -n >file
  • fai attenzione: questo non svuoterà il tuo file se esiste già
  • In realtà ho provato a toccare e " echo -n > file " allinterno del mio script bash ma ottengo un errore quando eseguo lo script: " Nessun file di questo tipo o la directory " su quella riga. Qualcuno può aiutare per favore?
  • echo -n "" > filename svuota il file se esiste o crea un file se non ' non esiste.

Risposta

Utilizza il comando null (:) redirect (> filename) trucco (:>), poiché verrà troncato a zero o creerà il file denominato.

$ echo foo > filea $ :> filea $ wc -c filea 0 filea $ rm filea $ :> filea $ wc -c filea 0 filea 

(Questo fallirà se la shell imposta unopzione NOCLOBBER.)

Commenti

  • Se noclobber è impostato, utilizza il reindirizzamento >| a clobber, quindi :>| filea – documentato nel manuale
  • Solo > filename.txt andrebbe bene, non cè bisogno del :. Oppure >> filename.txt se non ' vogliamo eliminarlo se esiste.
  • @ilkkachu sebbene la domanda specifica Bash, luso di : rende lo script più propenso a svolgere il suo compito con altre shell, ad es. Zsh.

Risposta

Potresti sempre usare anche perl.

$ stat filename.txt stat: cannot stat "filename.txt": No such file or directory $ perl -e "open($fh,">","filename.txt") or die $!;close($fh)" $ stat filename.txt File: "filename.txt" Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 801h/2049d Inode: 280728 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ xieerqi) Gid: ( 1000/ xieerqi) Access: 2017-02-08 13:51:01.479121995 -0700 Modify: 2017-02-08 13:51:01.479121995 -0700 Change: 2017-02-08 13:51:01.479121995 -0700 Birth: - 

Risposta

La via più breve:

>filename 

Commenti

  • Migliore risposta. ' non può essere più breve.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *