Käyn jonkin kolmannen osapuolen Perl-komentosarjan kanssa, joka on kirjoitettu siten, että se vaatii ulostulotiedoston lähtölippua varten, -o
.
Valitettavasti komentosarja näyttää vaativan varsinaisen tiedoston, toisin sanoen käyttäjien on luotava tyhjä tiedosto filename.txt
0 tavulla ja syötettävä sitten tämä tyhjä tiedosto komentosarjan komentorivillä
perl script1.pl -o filename.txt
Kysymys: Kuinka voin luoda tyhjän tiedoston bash-komentosarjaan? Jos vain yritetään ”>
, komentosarja antaa virheen, että tiedostoa ei ole.
Kommentit
-
touch filename.txt
- Mahdollinen kopio tiedostosta Kuinka luoda yksinkertainen .txt (teksti) tiedosto päätelaitteen avulla?
- katso myös Miksi ' ei ole mitään komentokomentoa tiedostojen luomiseksi?
Vastaa
Käytä touch
comm ja. touch filename.txt
.
Kommentit
Vastaa
Käytä null-komentoa (:
) uudelleenohjaus (> filename
) temppu (:>
), koska se katkaistaan nollaksi tai luo nimetty tiedosto.
$ echo foo > filea $ :> filea $ wc -c filea 0 filea $ rm filea $ :> filea $ wc -c filea 0 filea
(Tämä epäonnistuu, jos kuori asettaa NOCLOBBER-vaihtoehdon.)
Kommentit
- Jos noclobber on asetettu, käytä uudelleenohjausta
>|
huijaukseen, joten:>| filea
– dokumentoitu käsikirjassa - Vain
> filename.txt
tekisi, ei tarvetta:
. Tai>> filename.txt
, jos emme ' halua roskakoriin, jos sitä sattuu olemaan. - @ilkkachu tosin kysymys määrittää Bashin,
:
-toiminnon käyttäminen tekee komentotiedostosta todennäköisemmän suorittamaan tehtävänsä muiden kuorien kanssa, esim. Zsh.
Vastaa
Voit myös käyttää perl-tiedostoa.
$ 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: -
Vastaa
Lyhin tapa:
>filename
Kommentit
- Paras vastaus. ' ei voi olla lyhyempi.
echo -n >file
echo -n "" > filename
tyhjentää tiedoston, jos se on olemassa, tai luo tiedoston, jos se ei ' t on olemassa.