وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

چگونه اندازه یک فایل را در اسکریپت Bash بدست آوریم

0 2
زمان لازم برای مطالعه: 2 دقیقه


هنگام نوشتن اسکریپت های پوسته، ممکن است با موقعیتی مواجه شویم که باید اندازه یک فایل را بدانیم. به عنوان مثال، ممکن است لازم باشد از این اندازه برای انجام اقدامات دیگری مانند انتقال فایل به دایرکتوری دیگری یا حذف آن استفاده کنید.

این آموزش روش های سریعی را که می توانید در a استفاده کنید، مورد بحث قرار می دهد bash اسکریپت برای دریافت اندازه فایل در فرمت مشخص شده مانند بایت، کیلوبایت، مگابایت یا گیگابایت.

روش 1: دستور ls

روش اول استفاده از دستور خوب قدیمی ls است. هنگامی که با دستورات دیگر جفت می شود، دستور ls می تواند اندازه یک فایل را بگیرد.

برای پیاده سازی اسکریپت، به مسیر کامل فایل نیاز داریم، اطلاعات فایل را با ls لیست می کنیم و با استفاده از دستوری مانند awk اندازه را می گیریم.

نمونه اسکریپت برای آن به شکل زیر است:

#!/صندوقچه/bash
echo “مسیر کامل فایل را وارد کنید.”
خواندن فایل
حجم فایل=$(ls -lh $file | بیخیال ‘{print $5})
echo $file دارای اندازه است $filesize

اسکریپت بالا نسبتا ساده است. با استفاده از echo و دستور خواندن، نام مسیر کامل فایل را می گیریم.

سپس از دستور ls -lh برای فهرست کردن همه دایرکتوری ها و اندازه در قالب قابل خواندن توسط انسان استفاده می کنیم و در نهایت خروجی را به awk ارسال می کنیم و اندازه را به اندازه 5 می گیریم.هفتم متغیر.

در ادامه تصویری از فیلمنامه آمده است.

chmod +x size.sh
./size.sh

در اینجا خروجی برای آن است:

sudo ./size.sh
مسیر کامل فایل را وارد کنید
/etc/passwd
/etc/passwd دارای اندازه 2.9K است

روش 2: دستور wc

روش دیگری که می توانیم برای گرفتن اندازه یک فایل در a استفاده کنیم bash اسکریپت دستور wc است. دستور wc تعداد کلمات، اندازه و اندازه یک فایل را بر حسب بایت برمی گرداند.

پیشنهاد می‌کنیم بخوانید:  روش اسکرول بالا و پایین در Tmux

اکنون:

همانطور که می دانید خواندن حجم فایل بر حسب بایت کار چندان آسانی نیست. برای مقابله با این، می‌توانیم یک منوی ساده را پیاده‌سازی کنیم و فرمت اندازه مانند KB، MB و GB را از کاربر بپرسیم.

بسته به روی با فرمت انتخاب شده، بایت ها را به فرمت مذکور تبدیل می کنیم.

در اینجا یک اسکریپت مثال برای پیاده سازی چنین منطقی آورده شده است:

#!/صندوقچه/bash
echo “فرمت اندازه را انتخاب کنید، از مقادیر عددی استفاده کنید (1 برای بایت، 2 برای کیلوبایت، و غیره)”
echo “”
1. بایت
2. کیلوبایت
3. مگابایت
4. گیگابایت
“”
echo “************************************************ **********************”
خواندن قالب

echo “مسیر کامل فایل مورد نظر را وارد کنید:”
خواندن فایل
حجم فایل=$(دستشویی $file | بیخیال ‘{print $1})
اگر [[($format == 1)]];
سپس

echo $file تقریبا است $filesize بایت”
elif [[($format == 2)]];
سپس

کیلوبایت=$(قبل از میلاد مسیح <<<“مقیاس=3; $filesize / 1024″)

echo $file تقریبا است کیلوبایت $ کیلوبایت”
elif [[($format == 3)]];
سپس

MB=$(قبل از میلاد مسیح <<<“مقیاس=6; $filesize / 1048576″)

echo $file تقریبا است $mb MB”

elif [[($format == 4)]];
سپس

gb=$(قبل از میلاد مسیح <<<“مقیاس=12; $filesize / 1073741824″)

echo $file تقریبا است $gb گیگابایت”
دیگر

echo “فرمت نادرست.”

خروج
فی

در اسکریپت بالا، با درخواست از کاربر برای وارد کردن فرمت اندازه فایل شروع می کنیم. Bash این ورودی را می خواند و آن را در متغیر قالب ذخیره می کند.

در مرحله بعد، مسیر فایل را از کاربر درخواست می کنیم و این متغیر را در یک فایل ذخیره می کنیم.

مرحله بعدی دستور wc -c را فراخوانی می کند روی فایل مشخص شده از آنجایی که wc -c اندازه فایل را بر حسب بایت و مسیر فایل را برمی‌گرداند، ما از AWK برای گرفتن اندازه فایل استفاده می‌کنیم. ما اندازه را در بایت به عنوان اندازه فایل ذخیره می کنیم.

پیشنهاد می‌کنیم بخوانید:  چگونه عبارت Bash If-Else را در یک خط بنویسیم

در نهایت، یک دستور if ساده را پیاده سازی می کنیم تا بررسی کنیم که آیا قالب اندازه 1 (بایت)، 2 (کیلوبایت)، 3 (مگابایت)، 4 (گیگابایت) است یا خیر. سپس از دستور bc برای تبدیل اندازه فایل در بایت به فرمت مشخص شده استفاده می کنیم.

توجه داشته باشید: ما از یک مقیاس متغیر برای دستور bc استفاده می کنیم تا تعداد اعشار در هر ارزیابی را در نظر بگیریم.

تصویر زیر روش کار اسکریپت را نشان می دهد.

چگونه اندازه یک فایل را در اسکریپت Bash بدست آوریم

یک نکته دیگر: اسکریپت فوق کاملاً بدون شک است و بنابراین برای پیشرفت های قابل توجهی باز است. به راحتی آن را بهبود دهید و آن را مطابق با نیازهای خود تغییر دهید.

روش 3: با استفاده از دستور stat

ما نمی توانیم دستور stat را فراموش کنیم. با استفاده از دستور stat می توانیم اطلاعات دقیقی در مورد یک فایل یا سیستم فایل نمایش دهیم.

دستور stat اندازه را نیز بر حسب بایت برمی گرداند. می توانید از منطق مشابه در اسکریپت بالا برای انتخاب فرمت استفاده کنید.

در اینجا یک اسکریپت ساده با استفاده از دستور stat آمده است:

#!/صندوقچه/bash
echo “مسیر فایل را وارد کنید.”
خواندن فایل
حجم فایل=”$(آمار %س $file)
echo $file دقیق است $filesize بایت.”

در آستانه نزدیک شدن

این آموزش سه روش را مورد بحث قرار داده است که می توانید از آنها برای بدست آوردن اندازه یک فایل با استفاده از a استفاده کنید bash اسکریپت خوب است توجه داشته باشید که لینوکس مجموعه ای جامع از ابزارها و روش ها را برای دستیابی به این هدف دارد. موردی را پیدا کنید که برای شما مناسب است و به آن پایبند باشید.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-30 19:11:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید