2012-06-18 12 views
10

मैं निम्न आदेश चल रहा हूँ (Ubuntu पर)कैसे कुछ फ़ाइल

time wget 'http://localhost:8080/upLoading.jsp' --timeout=0 

को linux समय आदेश का परिणाम अनुप्रेषित और कमांड लाइन में एक परिणाम प्राप्त

real 0m0.042s 
user 0m0.000s 
sys  0m0.000s 

मैंने करने के लिए निम्नलिखित की कोशिश की:

time -a o.txt wget 'http://localhost:8080/upLoading.jsp' --timeout=0 

और निम्न त्रुटि प्राप्त

-a: command not found 

मैं परिणाम को कुछ फ़ाइल में रीडायरेक्ट करना चाहता हूं। मैं उसे कैसे कर सकता हूँ?

+1

शायद आप बैश का उपयोग कर रहे हैं, और इसमें 'टाइम' अंतर्निहित कमांड है। ('सहायता समय' देखें) आपके आदेश को ठीक से काम करने के लिए '/ usr/bin/time' का उपयोग करना चाहिए (यह पता लगाने के लिए कि समय की बाइनरी का उपयोग किस समय किया जाता है)। इसे ध्यान में रखते हुए, आपको इसका उपयोग करना होगा: 'time -o out.txt -a ...' – Lourenco

उत्तर

3

आप > चरित्र का उपयोग कर एक फाइल करने के लिए किसी भी commmand की stdout उत्पादन प्रत्यक्ष कर सकते हैं कर सकते हैं। करने के लिए उत्पादन संलग्न एक फाइल करने के लिए उपयोग >>

ध्यान दें कि जब तक स्पष्ट किया, stderr के उत्पादन अभी भी सांत्वना के लिए जाना जाएगा। निर्देशित करने के लिए दोनोंstderr और एक ही आउटपुट धारा को stdout का उपयोग

command 2>&1 outfile.txt (with bash) 

या

command >& outfile.txt (with t/csh) 

आप bashAll about redirection के साथ काम कर रहे हैं, तो आप अधिक विवरण और पुनर्निर्देशन के बारे में नियंत्रण दे देंगे।

+3

(टाइम wget ...) 2> out.txt सही काम कर रहा है। धन्यवाद – Julias

+0

जैसा कि मैंने ऊपर टिप्पणी की है '/ usr/bin/time' पर विचार करें। और इसलिए, कुछ का उपयोग करें '/ usr/bin/time -o outfile.txt -a ... ' – Lourenco

0

बिल्कुल time जीएनयू से लिखते हैं यह उत्पादन के लिए stderr है और यदि आप इसे फाइल रीडायरेक्ट करना चाहते हैं, तो आप उपयोग कर सकते हैं --output = time

के पथ पैरामीटर इस http://unixhelp.ed.ac.uk/CGI/man-cgi?time

और अगर देखें आप stdout को कुछ फ़ाइल में रीडायरेक्ट करना चाहते हैं, तो आप फ़ाइल बनाने के लिए > filename का उपयोग कर सकते हैं और प्रारंभिक कमांड के बाद कुछ फ़ाइल में संलग्न करने के लिए इसे >> filename भर सकते हैं।

आप खुद ही stderr रीडायरेक्ट करना चाहते हैं, तो आप का उपयोग $ command >&2 your_stderr_output

6

man time जाँच हो रही है, मुझे लगता है कि तुम क्या जरूरत है

time -o o.txt -a ... 

है (ध्यान दें कि आप जरूरत है दोनों -एक और -O)।

[संपादित करें:] क्या आप पार्टी में हैं, तो आप भी ध्यान

/usr/bin/time 

लिखने के लिए रखना चाहिए (विवरण के लिए मैनपेज जांच)

+0

अभी भी काम नहीं कर रहा है:' -o: कमांड नहीं मिला 'मेरी मशीन पर। –

+1

एडम की टिप्पणी देखें (http://stackoverflow.com/a/11082413/384689), शायद यह समाधान – claasz

+0

हम्म है, मैं इसे नहीं देख सकता हूं और इसलिए ... इसलिए मैंने अपना जवाब संपादित किया। उम्मीद है कि यह – claasz

-1

आपको लगता है कि > साथ आप रीडायरेक्ट करना चाहते हैं कर सकते हैं उत्पादन।

उदाहरण के लिए:

time wget 'http://localhost:8080/upLoading.jsp' --timeout=0 > output.txt 2>&1 

2>&1 एक ही फाइल को STDERR पुनर्निर्देशित करने के लिए कहते हैं।

यह आदेश किसी भी output.txt फ़ाइलों को मिटा देगा और आपके आउटपुट के साथ एक नया बनाता है। यदि आप >> का उपयोग करते हैं तो यह आउटपुट किसी भी मौजूदा output.txt फ़ाइल के अंत में जोड़ देगा। यदि यह अस्तित्व में नहीं है, तो यह इसे बनाएगा।

10

-a केवल बाइनरी (/ usr/bin/time) के समय समझा जाता है, जब केवल समय का उपयोग करके आप बैश निर्मित संस्करण का उपयोग कर रहे हैं जो -a विकल्प को संसाधित नहीं करता है, और इसलिए चलाने की कोशिश करता है यह एक आदेश के रूप में।

/usr/bin/time -o foo.txt -a wget 'http://localhost:8080/upLoading.jsp' --timeout=0 
+0

दोनों-ए और -ओ ने काम नहीं किया। समाधान 2> foo.txt – Julias

+2

था मेरा मानना ​​है कि यह वास्तव में सही उत्तर है। समय कॉल करते समय, शैल के बिल्टिन का उपयोग करने के बजाय कॉल/usr/bin/time जो उन्नत विकल्पों का समर्थन नहीं करता है। – mattismyname

+0

निश्चित रूप से, यह सही जवाब है। – Lourenco

0

कोशिश /usr/bin/time का उपयोग करने के बाद से कई गोले time के अपने स्वयं के कार्यान्वयन जो इतनी

/usr/bin/time -a -o foo.txt wget .... 
+0

मैंने इस टिप्पणी को इसे समझने के लिए प्रश्न में जोड़ा। – Lourenco

1
\time 2> time.out.text command 

\time -o time.out.text command 

करने के लिए अपने आदेश को बदल सकते हैं या /usr/bin/time

रूप में एक ही झंडे समर्थन नहीं कर सकते है यह उत्तर पूर्व टिप्पणियों के आधार पर। यह परीक्षण किया जाता है यह काम करता है। \/usr/bin/ से अधिक का लाभ यह है कि आपको time की स्थापित निर्देशिका पता नहीं है।

ये उत्तर केवल समय को कैप्चर करते हैं, अन्य आउटपुट नहीं।

0

आपके LANG के बारे में कैसे?

$ time -ao o.txt echo 1 
bash: -ao: コマンドが見つかりません 

real 0m0.001s 
user 0m0.000s 
sys  0m0.000s 
$ export|grep LANG 
declare -x LANG="ja_JP.utf8" 

$ LANG=C time -ao o.txt echo 1 
1 

$ cat o.txt 
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 1984maxresident)k 
0inputs+0outputs (0major+158minor)pagefaults 0swaps 
संबंधित मुद्दे