linux - কিভাবে একটি ফাইল এবং stdout আউটপুট পুনঃনির্দেশিত
bash file-io (6)
আপনি চান কমান্ড tee
নামকরণ করা হয়:
foo | tee output.file
উদাহরণস্বরূপ, যদি আপনি শুধুমাত্র stdout সম্পর্কে যত্ন করেন:
ls -a | tee output.file
আপনি stderr অন্তর্ভুক্ত করতে চান, তাহলে:
program [arguments...] 2>&1 | tee outfile
2>&1
চ্যানেল 1 (stderr / স্ট্যান্ডার্ড ত্রুটি) চ্যানেল 1 (স্টডাউট / স্ট্যান্ডার্ড আউটপুট) পুনঃনির্দেশিত করে, যেমন উভয় stdout হিসাবে লেখা হয়। এটি tee
কমান্ডের মতো প্রদত্ত আউটপুট ফাইলটিকে নির্দেশিত করে।
উপরন্তু, যদি আপনি লগ ফাইলে যোগ করতে চান তবে tee -a
ব্যবহার করুন:
program [arguments...] 2>&1 | tee -a outfile
Bash, foo
কে কলিং foo
যে কমান্ড থেকে কোনো আউটপুট প্রদর্শন করবে।
কলিং foo > output
যে কমান্ড থেকে যে কোনও আউটপুট নির্দিষ্ট ফাইলটিতে পুনঃনির্দেশিত করবে (এই ক্ষেত্রে 'আউটপুট')।
একটি ফাইল আউটপুট পুনঃনির্দেশ করার একটি উপায় আছে এবং এটি stdout এ প্রদর্শিত আছে?
আপনি প্রাথমিকভাবে solution ব্যবহার করতে পারেন, কিন্তু যদি আপনি আউটপুট ফাইলটি ওভাররাইট করতে না চান তবে আপনাকে -a বিকল্পটি অনুসরণ করে লিখতে হবে:
ls -lR / | tee -a output.file
কিছু যোগ করা ...
প্যাকেজ আনবফার ফেডোরা এবং রেডহ্যাট ইউনিক্স রিলিজের অধীনে কিছু প্যাকেজগুলির সাথে সমস্যা সমর্থন করে।
সমস্যা একপাশে সেট করা
আমার জন্য কাজ করে নিম্নলিখিত
bash myscript.sh 2>&1 | tee output.log
ধন্যবাদ এবং আপনার ইনপুট আমাকে অনেক সময় বাঁচিয়েছে ..
টি এই জন্য নিখুঁত, কিন্তু এই কাজ করতে হবে
ls -lr / > output | cat output
< command > |& tee filename
# এটি একটি ফাইল হিসাবে "ফাইলের নাম" তৈরি করবে একটি সামগ্রী হিসাবে কমান্ড স্ট্যাটাসের সাথে, যদি একটি ফাইল ইতিমধ্যে বিদ্যমান থাকে তবে এটি বিদ্যমান সামগ্রী মুছে ফেলবে এবং কমান্ডের অবস্থা লিখবে।
< command > | tee >> filename
< command > | tee >> filename
# এটি ফাইলটিতে স্থিতি যুক্ত করবে তবে এটি standard_output (স্ক্রীন) এ কমান্ডের স্থিতি মুদ্রণ করবে না।
আমি স্ক্রিনে "ইকো" ব্যবহার করে কিছু মুদ্রণ করতে চাই এবং একটি ফাইলের সাথে প্রতিধ্বনিত তথ্য যুক্ত করতে চাই
echo "hi there, Have to print this on screen and append to a file"
tail -f output
ব্যবহার tail -f output
কাজ করা উচিত।