উত্তর:
-P
বিকল্পটি ব্যবহার করে আউটপুটটিকে পার্স করা কিছুটা সহজ করা যায় যা নিশ্চিত করে যে:
- প্রতিটি ফাইল সিস্টেমের তথ্য সর্বদা এক লাইনে মুদ্রিত থাকে; একটি মাউন্ট ডিভাইস নিজেই কোনও লাইনে রাখা হয় না। এর অর্থ হ'ল যদি মাউন্ট ডিভাইসের নামটি 20 টিরও বেশি অক্ষর দীর্ঘ হয় (উদাহরণস্বরূপ, কিছু নেটওয়ার্ক মাউন্টগুলির জন্য), কলামগুলি বিভ্রান্ত।
এটি কেবল নিখরচায় উপলভ্য স্থান পাওয়া অনেক সহজ করে তোলে:
$ df -Ph . | tail -1 | awk '{print $4}'
( -h
মেগাবাইট, গিগাবাইট এবং আরও কিছু ব্যবহার করে your যদি আপনার সিস্টেমে এটি না থাকে তবে -k
কেবল কিলোবাইটের জন্য ব্যবহার করুন ))
যদি আমরা df
কোনও পথ পাস করি তবে এটি কেবল ২ টি সারি: একটি শিরোনাম সারি এবং তারপরে ফাইল সিস্টেম সম্পর্কিত ডেটাটি পাঠাবে। আমরা দ্বিতীয় সারিটি ধরতে লেজ ব্যবহার করতে পারি। আমরা জানি যে উপলব্ধ স্থানটি চতুর্থ কলামে রয়েছে, সুতরাং আমরা এটির সাথে দখল করি awk
। এই সব দিয়ে করা যেতে পারে awk
:
$ df -Ph . | awk 'NR==2 {print $4}'
অথবা ফিল্টারগুলির অনেকগুলি সেট ।
$PWD
কমান্ড প্রতিস্থাপন ব্যবহার না করে এবং লেজের প্রয়োজনীয়তা অপসারণের পরিবর্তে পরিবেশ পরিবর্তনশীল ব্যবহার করে আপনি আপনার কমান্ডটি অনুকূল করতে পারেন : df -Ph $PWD | awk 'NR==2{print $4}'
awk
করা আরও ভাল। আমি লম্বা কমান্ডটি অন্তর্ভুক্ত করেছি কারণ কীভাবে আরও জটিল কিছু করার জন্য কেউ সহজ কমান্ডগুলির একটি শৃঙ্খলা তৈরি করতে পারে তার একটি উদাহরণ পেতে চাই। আমি আপনার উন্নতি অন্তর্ভুক্ত উত্তর আপডেট করেছি।
-P
মানক (এটি P
পসিক্সের জন্য)। তবে -h
এটি একটি জিএনইউ এক্সটেনশন (অন্যান্য কয়েকটি সিস্টেমে বিদ্যমান, তবে যেমন ওপেনবিএসডি-তে এটি বেমানান -P
)।
df -h --output=avail . | tail -1
time { I=0; while [ $I -lt 10000 ]; do df -Ph . | awk 'NR==2 {print $4}' > /dev/null; ((I++)); done }
) গতিতে কোনও অর্থপূর্ণ পার্থক্য প্রকাশ করে, যা আশ্চর্যজনক নয় - অনুরোধ করা tail
ব্যয়বহুল নয় এবং ইনপুটটির awk
শেষ দিকে এড়াতে বাধা দেওয়া হবে ... এতে কোনও পার্থক্য থাকতে পারে পিডিপি -11 ...
বাইটে:
df --output=avail -B 1 "$PWD" | tail -n 1
মানব পাঠযোগ্য:
df --output=avail -h "$PWD" | tail -n 1
অথবা
df --output=avail -B 1 "$PWD" |tail -n 1 | numfmt --to="iec"
অথবা
df --output=avail -B 1 "$PWD" |tail -n 1 | numfmt --grouping
du -h
?