از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه اندازه یک فایل را در اسکریپت Bash بدست آوریم
سرفصلهای مطلب
این آموزش روش های سریعی را که می توانید در a استفاده کنید، مورد بحث قرار می دهد bash اسکریپت برای دریافت اندازه فایل در فرمت مشخص شده مانند بایت، کیلوبایت، مگابایت یا گیگابایت.
روش 1: دستور ls
روش اول استفاده از دستور خوب قدیمی ls است. هنگامی که با دستورات دیگر جفت می شود، دستور ls می تواند اندازه یک فایل را بگیرد.
برای پیاده سازی اسکریپت، به مسیر کامل فایل نیاز داریم، اطلاعات فایل را با ls لیست می کنیم و با استفاده از دستوری مانند awk اندازه را می گیریم.
نمونه اسکریپت برای آن به شکل زیر است:
echo “مسیر کامل فایل را وارد کنید.”
خواندن فایل
حجم فایل=$(ls -lh $file | بیخیال ‘{print $5})
echo “$file دارای اندازه است $filesize“
اسکریپت بالا نسبتا ساده است. با استفاده از echo و دستور خواندن، نام مسیر کامل فایل را می گیریم.
سپس از دستور ls -lh برای فهرست کردن همه دایرکتوری ها و اندازه در قالب قابل خواندن توسط انسان استفاده می کنیم و در نهایت خروجی را به awk ارسال می کنیم و اندازه را به اندازه 5 می گیریم.هفتم متغیر.
در ادامه تصویری از فیلمنامه آمده است.
./size.sh
در اینجا خروجی برای آن است:
مسیر کامل فایل را وارد کنید
/etc/passwd
/etc/passwd دارای اندازه 2.9K است
روش 2: دستور wc
روش دیگری که می توانیم برای گرفتن اندازه یک فایل در a استفاده کنیم bash اسکریپت دستور wc است. دستور wc تعداد کلمات، اندازه و اندازه یک فایل را بر حسب بایت برمی گرداند.
اکنون:
همانطور که می دانید خواندن حجم فایل بر حسب بایت کار چندان آسانی نیست. برای مقابله با این، میتوانیم یک منوی ساده را پیادهسازی کنیم و فرمت اندازه مانند KB، MB و GB را از کاربر بپرسیم.
بسته به روی با فرمت انتخاب شده، بایت ها را به فرمت مذکور تبدیل می کنیم.
در اینجا یک اسکریپت مثال برای پیاده سازی چنین منطقی آورده شده است:
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 برای گرفتن اندازه فایل استفاده میکنیم. ما اندازه را در بایت به عنوان اندازه فایل ذخیره می کنیم.
در نهایت، یک دستور if ساده را پیاده سازی می کنیم تا بررسی کنیم که آیا قالب اندازه 1 (بایت)، 2 (کیلوبایت)، 3 (مگابایت)، 4 (گیگابایت) است یا خیر. سپس از دستور bc برای تبدیل اندازه فایل در بایت به فرمت مشخص شده استفاده می کنیم.
توجه داشته باشید: ما از یک مقیاس متغیر برای دستور bc استفاده می کنیم تا تعداد اعشار در هر ارزیابی را در نظر بگیریم.
تصویر زیر روش کار اسکریپت را نشان می دهد.
یک نکته دیگر: اسکریپت فوق کاملاً بدون شک است و بنابراین برای پیشرفت های قابل توجهی باز است. به راحتی آن را بهبود دهید و آن را مطابق با نیازهای خود تغییر دهید.
روش 3: با استفاده از دستور stat
ما نمی توانیم دستور stat را فراموش کنیم. با استفاده از دستور stat می توانیم اطلاعات دقیقی در مورد یک فایل یا سیستم فایل نمایش دهیم.
دستور stat اندازه را نیز بر حسب بایت برمی گرداند. می توانید از منطق مشابه در اسکریپت بالا برای انتخاب فرمت استفاده کنید.
در اینجا یک اسکریپت ساده با استفاده از دستور stat آمده است:
echo “مسیر فایل را وارد کنید.”
خواندن فایل
حجم فایل=”$(آمار -ج %س $file)
echo “$file دقیق است $filesize بایت.”
در آستانه نزدیک شدن
این آموزش سه روش را مورد بحث قرار داده است که می توانید از آنها برای بدست آوردن اندازه یک فایل با استفاده از a استفاده کنید bash اسکریپت خوب است توجه داشته باشید که لینوکس مجموعه ای جامع از ابزارها و روش ها را برای دستیابی به این هدف دارد. موردی را پیدا کنید که برای شما مناسب است و به آن پایبند باشید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 19:11:04