मैं कमांड लाइन से एक खाली फ़ाइल कैसे बना सकता हूं?
का प्रयोग करें touch आदेश:
The touch utility sets the modification and access times of files to thecurrent time of day. If the file doesn't exist, it is created withdefault permissions.उदाहरण:
touch newfile
> newfileभी होगा बनाएँ एक खाली फ़ाइल। यदि फ़ाइल पहले से मौजूद है, तो यह होगी काट दिया (खाली) । फ़ाइल सामग्री रखने के लिए, उपयोग करें >> के रूप में संलग्न करने के लिए:
>> fileभले ही फ़ाइल मौजूद हो, सामग्री अछूती होगी ।
संपादित करें: यदि आपके पास टाइप करने के लिए कोई सामग्री नहीं है, तो यह तेज़ है:
user@host$ :> newfileuser@host$ :>> new_or_existing_fileनोट। : यहाँ आदेश है । यह संकेत का हिस्सा नहीं है ।
cat /dev/null > file1.ext सटीक तरीका एक और तरीका भी है
echo "" > file2.ext अंतर फ़ाइल 1 है । एक्सटी शून्य बाइट्स और फ़ाइल 2 होगा । एक्सटी एक बाइट होगा । आप इसे देख सकते हैं
ls -l file*.*
का उपयोग करना vim संपादक आप एक खाली फ़ाइल भी बना सकते हैं ।
vim filenameफिर बचाओ
:wq
आदेश
echo -n > fileएक खाली फ़ाइल बनाता है, यदि आपका संस्करण echo - एन स्विच का समर्थन करता है ।
या आप उपयोग कर सकते हैं printf
printf '' > file
सामान्य रूप से, कोई भी नियमित बनाना1 लिनक्स पर फ़ाइल शामिल है open(2) ,openat(2), तथा creat(2) सिस्टम कॉल (और विशेष रूप से साथ O_CREAT झंडे)। इसका मतलब है कि यदि आप किसी भी कमांड-लाइन उपयोगिता को कॉल करते हैं जो इन सिस्टम कॉल करता है, तो आप एक नई खाली फ़ाइल बना सकते हैं ।
आमतौर पर नया फ़ाइल नाम कुछ इस तरह से बनाया जाता है:
touch /tmp/new_file: > /tmp/new_filetrue > /tmp/new_file-
> /tmp/new_file(केवल बैश शेल )
स्पर्श करें एक स्टैंडअलोन उपयोगिता है । इसका मूल उद्देश्य किसी फ़ाइल के एक्सेस और संशोधन समय को अपडेट करना है, हालांकि यदि फ़ाइल मौजूद नहीं है - तो इसे बनाया जाएगा । यह भी ध्यान दें कि एक फ़ाइल नाम - विशेष रूप से व्यवहार किया जाता है, इसलिए यदि आप एक फ़ाइल बनाना चाहते हैं जिसका शाब्दिक नाम है -, आपको इसे सिंगल या डबल कोट्स में संलग्न करना होगा ।
इसके विपरीत, > के लिए एक खोल पुनर्निर्देशन ऑपरेटर है स्टडआउट स्ट्रीम. द > ऑपरेटर विशेष रूप से कॉल करता है openat() सिस्टम कॉल के साथ O_WRONLY|O_CREAT|O_TRUNC झंडे। इसका मतलब है, यदि फ़ाइल नाम मौजूद नहीं है - यह बनाया जाएगा, और यदि ऐसा होता है - डेटा को छोटा कर दिया जाएगा (और इसलिए चला गया, इसलिए > देखभाल के साथ इस्तेमाल किया जाना चाहिए) । आजकल ज्यादातर गोले में true या : एक अंतर्निहित है, इसलिए कर रहा है : > /tmp/new_file अधिक कुशल होने जा रहा है, हालांकि तुलना में मामूली रूप से touch /tmp/new_file.
लेकिन बेशक यह यहीं नहीं रुकता । जैसा कि उल्लेख किया गया है, कुछ भी जो प्रदर्शन कर सकता है open(), openat() और, create() सिस्कॉल एक फाइल बनाएगा। इसलिए, हम कर सकते हैं:
true|dd of=/tmp/newfiletruncate --size 0 /tmp/new_filename.txtcp /dev/null /tmp/null_filetrue|tee /tmp/some_other_file-
mktempयाtempfile(अस्थायी फ़ाइलें बनाने के लिए जिन्हें रिबूट के बीच मौजूद होने की आवश्यकता नहीं है !)
बेशक, उपर्युक्त सभी उपयोगिताओं विशेष रूप से फाइलें नहीं बनाती हैं । लेकिन वे आवश्यक सिस्कॉल करते हैं और यह हमें आदेशों को अनुकूलित करने की अनुमति देता है ।
बेशक, प्रोग्रामिंग या स्क्रिप्टिंग के स्तर पर हम एक फ़ाइल भी बनाना चाह सकते हैं, विशेष रूप से दक्षता उद्देश्यों के लिए (क्योंकि बाहरी आदेशों को कॉल करना जैसे touch एक पर्ल स्क्रिप्ट या पायथन से अतिरिक्त संसाधनों की आवश्यकता होगी) ।
पायथन वन-लाइनर:
$ python -c 'import sys,os;f=sys.argv[1];os.utime(f,None) if os.path.exists(f) else open(f,"a").close' myfile.txtहम इसे इसके साथ छोटा कर सकते हैं:
$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt और पर्ल में:
$ perl -e 'open(my $fh,">","/tmp/perlfile")'1 अन्य प्रकार की फाइलें जैसे हार्ड/सॉफ्ट लिंक,कैरेक्टर या ब्लॉक विशेष डिवाइस, डायरेक्टरी,नामित पाइप, या सॉकेट्स को पूरी तरह से अलग-अलग सिस्कॉल की आवश्यकता होती है ।