بررسی اندازه فایلها و دایرکتوریها در لینوکس
بررسی اندازه فایلها و دایرکتوریها در لینوکس برای مدیریت ذخیره سازی و بهینهسازی منابع سیستم ضروری است.
دستورات مختلف لینوکس اطلاعاتی در مورد اندازه فایلها ارائه میدهند که هر کدام برای فرمتهای خروجی و سطوح جزئیات خاص مناسب هستند.
این مقاله شما را در روشهای مؤثر برای بررسی اندازه فایل لینوکس با استفاده از ۴ دستور قدرتمند لینوکس برای نمایش اندازه فایل راهنمایی میکند:
- دستور ls: فایلها و دایرکتوریها را فهرست میکند و با -lh، اندازه فایلها را در یک فرمت قابل خواندن برای انسان نمایش میدهد.
- دستور du: فضای دیسک مورد استفاده توسط فایلها یا دایرکتوریها را نشان میدهد و اندازه کل و پشتیبانی از فرمتهای قابل خواندن برای انسان با -h را ارائه میدهد.
- دستور stat: متادیتاهای دقیقی در مورد یک فایل، از جمله اندازه دقیق آن به بایت، استفاده بلوک و سایر ویژگیها را ارائه میدهد.
- دستور wc: با استفاده از گزینه -c، تعداد بایتها در یک فایل را برای نشان دادن اندازه آن شمارش میکند.
برای مدیریت مؤثر اندازه فایلها و اطمینان از عملکرد بهینه بر روی سرور خود، داشتن یک سرور مجازی اختصاصی قابل اعتماد لینوکس که بتواند نیازهای ذخیره سازی شما را برآورده کند، ضروری است.
استفاده از دستور ls برای بررسی اندازه فایل لینوکس
دستور ls یکی از اساسیترین و در عین حال متنوعترین دستورات در لینوکس است که فایلها و دایرکتوریها را فهرست میکند و میتواند اندازه فایلها را نیز نمایش دهد.
دستور ls برای مشاهده اندازه فایل:
میتوانید دستور ls را با گزینه لیست طولانی (-l) اجرا کنید تا اندازه فایلها را به بایت بررسی کنید:
ls -l filename
بهطور پیشفرض، اندازهها به بایت نمایش داده میشوند، اما ترکیب آن با گزینه -lh، اندازهها را در یک فرمت قابل خواندن برای انسان (مانند KB، MB یا GB) نمایش میدهد.
مثلاً:
ls -lh filename
خروجی:
-rw-rw-r-- 1 user user 14K Oct 12 11:38 sample.txt
اندازه فایل به عنوان ۱۴K (14 کیلوبایت) نشان داده میشود که درک آن بسیار آسانتر از نمایش پیشفرض به بایت است. همچنین، -rw-rw-r– مجوزهای فایل هستند.
علاوه بر این، گزینه -sh اندازه فایلها را در کنار نام فایلها نشان میدهد که میتواند برای دایرکتوریهای حاوی چندین فایل مفید باشد.
ls -sh filename
برای مرتبسازی فایلها بر اساس اندازه، از گزینه -S مانند زیر استفاده کنید:
ls -lhS
برای مشاهده اندازه فایلها به یک واحد خاص مانند مگابایت، میتوانید از گزینه –block-size استفاده کنید. این گزینه یک اندازه بلوک خاص را در ls اعمال میکند:
ls -l --block-size=M
استفاده از دستور du برای بررسی اندازه فایل لینوکس
دستور du (disk usage) اطلاعات دقیقتری در مورد استفاده فضای دیسک برای فایلها و دایرکتوریها ارائه میدهد.
این دستور برای بررسی اندازههای دایرکتوری و درک میزان فضای دیسک مصرف شده توسط فایلها بسیار مفید است.
دستور du برای بررسی استفاده دیسک:
برای بررسی اندازه یک فایل خاص با du، اجرا کنید:
du -sh filename
دستور فوق، -s اندازه کل فایل را ارائه میدهد و -h یک فرمت قابل خواندن برای انسان را فراهم میکند.
مثلاً:
du -sh /var 85G /var
همچنین میتوانید از du برای بررسی اندازه دایرکتوری استفاده کنید. این دستور اطلاعات دقیقی را ارائه میدهد، از جمله اندازه هر زیر دایرکتوری. برای دریافت اندازه کل یک دایرکتوری، اجرا کنید:
du -sh directory_name
از گزینه -a برای مشاهده اندازههای تمام فایلها در داخل یک دایرکتوری و زیر دایرکتوریهای آن استفاده کنید:
du -ah directory_name
گزینه -d به شما امکان میدهد عمق پیمایش دایرکتوری را کنترل کنید. برای مثال، برای مشاهده اندازه دایرکتوریها تا دو سطح عمق، اجرا کنید:
du -h -d 2 directory_name
همچنین، میتوانید du را با sort و head ترکیب کنید تا دایرکتوریها را بر اساس اندازه مرتب کنید و بزرگترین دایرکتوریها را پیدا کنید:
sudo du -h /var | sort -rh | head -5
این دستور پنج دایرکتوری بزرگترین داخل /var را نمایش میدهد.
استفاده از دستور stat برای بررسی اندازه فایل لینوکس
دستور stat اطلاعات دقیقی در مورد یک فایل یا یک دایرکتوری ارائه میدهد، از جمله اندازه فایل، مجوزها، زمان اصلاح و موارد دیگر.
بر خلاف دستور ls، stat اغلب جامعتر است زیرا متادیتای اضافی را نشان میدهد.
دستور stat برای یافتن اندازه فایل لینوکس:
در اینجا استفاده اولیه از دستور stat آورده شده است که به شما امکان میدهد اندازه فایل را بررسی کنید:
stat filename
در حالی که فایلی به نام file.txt وجود دارد، دستور زیر را برای بررسی اندازه آن مانند این اجرا کنید:
stat file.txt
خروجی:
File: file.txt
Size: 10240 Blocks: 24 IO Block: 4096 regular fileDevice: 802h/2050d Inode: 927168 Links: 1Access: (0644/-rw-r--r--) Uid: ( 1000/ username) Gid: ( 1000/ username)Access: 2024-10-09 10:00:00.000000000 +0000Modify: 2024-10-09 10:00:00.000000000 +0000Change: 2024-10-09 10:00:00.000000000 +0000
خروجی فوق نشان میدهد:
- فیلد Size: 10240 اندازه فایل را به بایت (۱۰ KB) نشان میدهد.
- فیلد Blocks: 24 نشان میدهد که فایل چند بلوک داده را روی دیسک استفاده میکند.
- فیلد IO Block: 4096 اندازه بلوکها در سیستم فایل را نشان میدهد.
برای مشاهده اندازه فایل در یک فرمت قابل خواندن برای انسان، مانند KB، MB یا GB، آن را مانند این قالببندی کنید:
stat --format="%s bytes" file.txt
خروجی:
۱۰۲۴۰ bytes
همانطور که مشاهده میکنید، دستور stat برای به دست آوردن متادیتای دقیق در مورد یک فایل بسیار مفید است.
استفاده از دستور wc برای بررسی اندازه فایل لینوکس
دستور wc (word count) معمولاً برای شمارش تعداد خطوط، کلمات و کاراکترها در یک فایل استفاده میشود.
با این حال، همچنین میتوان از آن برای بررسی اندازه یک فایل از نظر تعداد بایت استفاده کرد.
دستور wc برای اندازه فایل:
برای نمایش اندازه یک فایل به بایت، از گزینه -c استفاده کنید:
wc -c filename
مثلاً، با یک فایل به نام opera.txt، اندازه آن را با استفاده از دستور زیر بررسی کنید:
wc -c opera.txt
خروجی:
۱۲ opera.txt
در خروجی فوق، ۱۲ تعداد بایتها در فایل opera.txt را نشان میدهد.
همچنین میتوانید از دستور wc برای بررسی اندازه چندین فایل به طور همزمان استفاده کنید.
مثلاً:
wc -c file1.txt file2.txt
خروجی:
۱۰۲۴ file1.txt 2048 file2.txt 3072 total
دستور فوق اندازه هر فایل را نشان میدهد، به دنبال آن اندازه کل برای تمام فایلها.
wc -c میتواند با گزینههای دیگر مانند -l (خطوط)، -w (کلمات) و -m (کاراکترها) ترکیب شود تا اطلاعات اضافی در مورد محتوای فایل را دریافت کنید.
مثلاً:
wc -lwm filename
تعداد خطوط، کلمات و کاراکترها را نمایش میدهد، به دنبال آن نام فایل. این هنگام تجزیه و تحلیل فایلهای متنی مفید است.
بررسی اندازه بزرگترین فایلها در یک دایرکتوری
میتوانید از دستور find به همراه sort برای فهرست کردن بزرگترین فایلها استفاده کنید:
find /path/to/directory -type f -exec du -h {} + | sort -rh | head -5
این دستور ۵ بزرگترین فایل در دایرکتوری را نمایش میدهد.
نمایش اندازه فایلها به مگابایت یا گیگابایت با استفاده از ls
برای نمایش اندازه فایلها به یک واحد خاص، مانند MB، از گزینه –block-size استفاده کنید:
ls -l --block-size=M
این گزینه خروجی را وادار میکند تا اندازه فایلها را به مگابایت نمایش دهد.
بررسی اندازه تمام فایلها در یک دایرکتوری
میتوانید از دستور du برای نمایش اندازه تمام فایلها در یک دایرکتوری استفاده کنید:
du -ah /path/to/directory
این دستور اندازه هر فایل و زیر دایرکتوری را در یک فرمت قابل خواندن برای انسان نشان میدهد.
سرعت بخشیدن به دستور du
اگر دایرکتوری حاوی فایلهای زیادی باشد، du ممکن است برای محاسبه اندازهها زمان بر باشد. از گزینه –max-depth برای محدود کردن عمقی که دستور در زیر دایرکتوریها خواهد رفت استفاده کنید:
du -h --max-depth=1 /path/to/directory
این دستور فقط اندازه فایلها و دایرکتوریها را در یک سطح عمق محاسبه میکند.
بررسی اندازه چندین فایل به طور همزمان
میتوانید اندازه چندین فایل را با فهرست کردن آنها با دستورات ls، du یا wc بررسی کنید:
ls -lh file1.txt file2.txt du -sh file1.txt file2.txt wc -c file1.txt file2.txt
هر دستور اندازه فایلهای مشخص شده را به شما میدهد، با ls و du که اندازههای قابل خواندن برای انسان را نمایش میدهند و wc اندازه را به بایت نشان میدهد.
چرا برخی فایلها با ls اندازه صفر بایت نشان میدهند اما همچنان فضای دیسک را با du استفاده میکنند؟
برخی فایلها، بهویژه فایلهای سیستم خاص یا فایلهای پراکنده، ممکن است اندازه صفر بایت را نشان دهند زیرا دادههای سنتی را ذخیره نمیکنند. با این حال، آنها ممکن است همچنان فضای دیسک را به دلیل متادیتا یا به دلیل پراکنده بودن مصرف کنند.
بررسی اندازه فایلهای مخفی
میتوانید فایلهای مخفی را در بررسیهای اندازه خود با استفاده از دستورات ls -la یا du گنجانید:
ls -ladu -ah
گزینه -a تضمین میکند که فایلهای مخفی (آنهایی که با نقطه شروع میشوند) در خروجی گنجانده میشوند.
روشهای رفع مشکل اندازه فایلها هنگام نادرست بودن
اگر اندازه فایلهای گزارش شده توسط دستورات مختلف نادرست به نظر میرسند، موارد زیر را بررسی کنید:
- فایلهای پراکنده: فایلهایی که تمام دادهها را به صورت فیزیکی روی دیسک ذخیره نمیکنند.
- پیوندهای سخت: فایلها ممکن است بلوکهای دیسک یکسانی را به اشتراک بگذارند و این باعث میشود که به نظر برسد فضای کمتری را اشغال میکنند.
- اندازه بلوک سیستم فایل: فایلهای کوچک ممکن است به دلیل اندازه بلوک سیستم فایل فضای بیشتری را اشغال کنند.
نتیجهگیری
در این مقاله، ما چهار دستور ضروری لینوکس ls، du، stat و wc را بررسی کردیم.
هر کدام روشهای منحصر به فردی برای بررسی اندازه فایلهای لینوکس و درک استفاده دیسک ارائه میدهند. دانستن نحوه بررسی اندازه فایلها برای مدیریت مؤثر ذخیره سازی، اطمینان از عملکرد بهینه سیستم و جلوگیری از مشکلات غیرمنتظره فضای دیسک ضروری است.