it-swarm.com.de

Wie erstelle ich eine neue leere Datei in einem Bash-Skript?

Ich verwende ein Perl-Skript eines Drittanbieters, das so geschrieben ist, dass es eine Ausgabedatei für das Ausgabeflag -o Erfordert.

Leider scheint das Skript eine tatsächliche Datei zu erfordern, dh Benutzer müssen eine leere Datei filename.txt Mit 0 Bytes erstellen und diese leere Datei dann in die Skriptbefehlszeile eingeben

Perl script1.pl -o filename.txt

Frage: Wie würde ich eine leere Datei in einem Bash-Skript erstellen? Wenn man einfach Perl script1.pl -o filename.txt Versucht, gibt das Skript einen Fehler aus, dass die Datei nicht existiert.

19
ShanZhengYang

Verwenden Sie den Befehl touch. touch filename.txt.

29
MKT

Verwenden Sie den Befehl null (:) umleiten (> filename) Trick (:>), da dies auf Null gekürzt wird oder die benannte Datei erstellt wird.

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

(Dies schlägt fehl, wenn die Shell eine NOCLOBBER-Option festlegt.)

6
thrig

Sie können auch immer Perl verwenden.

$ 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