web-dev-qa-db-fra.com

Comment créer un nouveau fichier vide dans un script bash?

J'exécute un script Perl tiers écrit de telle sorte qu'il nécessite un fichier de sortie pour l'indicateur de sortie, -o.

Malheureusement, le script semble nécessiter un fichier réel, c'est-à-dire que les utilisateurs doivent créer un fichier vide filename.txt avec 0 octet, puis entrez ce fichier vide sur la ligne de commande de script

Perl script1.pl -o filename.txt

Question: Comment créer un fichier vide dans un script bash? Si l'on essaie simplement Perl script1.pl -o filename.txt, le script indique que le fichier n'existe pas.

19
ShanZhengYang

Utilisez la commande touch. touch filename.txt.

29
MKT

Utilisez la commande null (:) rediriger (> filename) tour (:>), car cela tronquera à zéro ou créera le fichier nommé.

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

(Cela échouera si le shell définit une option NOCLOBBER.)

6
thrig

Vous pouvez également toujours utiliser 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: -
3
Sergiy Kolodyazhnyy