मैं एक bash स्क्रिप्ट में एक नई खाली फ़ाइल कैसे बनाऊँ?


19

मैं कुछ थर्ड-पार्टी पर्ल स्क्रिप्ट लिख रहा हूं, जैसे कि इसे आउटपुट फ्लैग के लिए आउटपुट फाइल की आवश्यकता होती है -o

दुर्भाग्य से, स्क्रिप्ट को वास्तविक फ़ाइल की आवश्यकता प्रतीत होती है, अर्थात, उपयोगकर्ताओं को filename.txt0 बाइट के साथ एक खाली फ़ाइल बनानी होगी और फिर इस खाली फ़ाइल को स्क्रिप्ट कमांड लाइन पर इनपुट करना होगा।

perl script1.pl -o filename.txt

प्रश्न: मैं बैश स्क्रिप्ट के भीतर एक खाली फ़ाइल कैसे बनाऊंगा? यदि कोई बस कोशिश करता है perl script1.pl -o filename.txt, तो स्क्रिप्ट एक त्रुटि देती है कि फ़ाइल मौजूद नहीं है।


1
touch filename.txt
hschou


जवाबों:


29

touchकमांड का उपयोग करें । touch filename.txt


8
echo -n >file
हन्नू

8
ध्यान रखें - यह आपकी फ़ाइल को खाली नहीं करेगा यदि यह पहले से मौजूद है
johanvdw

6

Null कमांड ( :) रिडायरेक्ट ( > filename) ट्रिक ( :>) का उपयोग करें, क्योंकि यह शून्य हो जाएगा या नामित फ़ाइल बना देगा।

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

(यह विफल हो जाएगा यदि शेल एक NOCLOBBER विकल्प सेट करता है।)


1
अगर नोबलर सेट किया गया है, तो क्लोबर पर पुनर्निर्देशन >|का उपयोग करें , इसलिए :>| filea- मैनुअल में
ग्लेन जैकमैन

1
बस > filename.txt, कोई ज़रूरत नहीं होगी :। या >> filename.txtअगर हम इसे बर्बाद नहीं करना चाहते हैं अगर यह मौजूद है।
ilkachachu

2
@ilkkachu हालांकि सवाल बैश को निर्दिष्ट :करता है, लेकिन स्क्रिप्ट का उपयोग अन्य गोल्स जैसे कि ज़श के साथ अपने कार्य को पूरा करने की अधिक संभावना है।
कैन-नेड_फूड

3

आप हमेशा पर्ल का भी उपयोग कर सकते हैं।

$ 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: -
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.