دستور lsblk
اطلاعات
مربوط به
تمام یا
دستگاههای
بلوکی
مشخصشده را
در ساختار
درختی
خوانا
نمایش
میدهد.
دستور lsblk
فایلسیستم
sysfs و پایگاه
داده udev را
برای
جمعآوری
اطلاعات
میخواند.
اگر پایگاه
داده udev در
دسترس
نباشد یا lsblk
بدون
پشتیبانی
از udev
کامپایل
شده باشد،
سعی میکند
نام
برچسبها
(LABEL)،
شناسههای
یکتا (UUID) و نوع
سیستمفایلها
را
مستقیماً
از دستگاه
بلوکی
بخواند. در
این حالت
دسترسی
ریشه (root)
الزامی
است.
بهطور
پیشفرض،
این دستور
تمام
دستگاههای
بلوکی (به جز
دیسکهای
رم / RAM disks) را در
یک ساختار
درختی
نمایش
میدهد. اگر
دستگاهی با
دستگاههای
دیگر مرتبط
باشد ممکن
است چندین
بار در درخت
تکرار شود.
گزینه --merge
برای
پیکربندیهای
پیچیدهتر
جهت
گروهبندی
دستگاهها
و توصیف
روابط
پیچیده N:M
پیشنهاد
میشود.
خروجی
درختیشکل
(یا آرایه children[]
در خروجی JSON)
تنها زمانی
فعال است که
ستون NAME در
خروجی وجود
داشته باشد
یا از گزینه
خط فرمان --tree
استفاده
شود. همچنین
گزینههای
--nodeps و --list را
برای کنترل
قالببندی
درختی
ببینید.
خروجی
پیشفرض، و
همچنین
خروجی
پیشفرض
گزینههایی
مانند --fs و
--topology ممکن است
در
نسخههای
بعدی تغییر
کند.
بنابراین
تا جای ممکن
از تکیه بر
خروجیهای
پیشفرض در
اسکریپتهای
خود
خودداری
کنید. همیشه
ستونهای
مورد نیاز
را با
استفاده از
--output
فهرست-ستونها
و گزینه --list
در
محیطهایی
که خروجی
پایدار و
باثبات
نیاز دارند
به صراحت
مشخص
نمایید.
برای
دریافت
فهرستی از
تمام
ستونهای
پشتیبانیشده
از دستور lsblk
--list-columns استفاده
کنید.
توجه
داشته
باشید که
ممکن است lsblk
در زمانی
اجرا شود که
udev هنوز
تمام
اطلاعات
دستگاههای
تازه
اضافهشده
یا
تغییریافته
را پردازش
نکرده باشد.
در این
شرایط
پیشنهاد
میشود پیش
از اجرای
lsblk، دستور udevadm
settle را جهت
همگامسازی
با udev اجرا
کنید.
ارتباط
میان
دستگاههای
بلوکی و
فایلسیستمها
همیشه
یکبهیک
نیست. یک
فایلسیستم
ممکن است از
چندین
دستگاه
بلوکی
استفاده
کند یا همان
فایلسیستم
از طریق
مسیرهای
متعددی
قابل
دسترسی
باشد. به
همین دلیل
lsblk دو ستون MOUNTPOINT
و MOUNTPOINTS را
ارائه
میدهد.
ستون MOUNTPOINT فقط
یک نقطه
اتصال
(معمولاً
آخرین
نمونه
متصلشده
از
فایلسیستم)
را نمایش
میدهد، در
حالی که
ستون MOUNTPOINTS در
یک سلول
چندخطی
تمام نقاط
اتصال متصل
به آن
دستگاه را
نمایش
میدهد.
-A, --noempty
دستگاههای
خالی را
نمایش نده.
-a, --all
تمام
فیلترهای
داخلی را
غیرفعال
کرده و همه
دستگاههای
خالی و
دیسکهای
رم (RAM disk) را نیز
فهرست کن.
-b, --bytes
اندازهها
را بهجای
قالب خوانا
برای
انسان، بر
حسب بایت
نمایش بده.
بهطور
پیشفرض
واحد
اندازهها
بایت است و
پیشوندهای
واحدها بر
توان ۲^۱۰
(۱۰۲۴) هستند.
برای
خوانایی
بهتر،
اختصارات
نمادها
کوتاه شده و
تنها حرف
اول آنها
نمایش داده
میشود؛
برای مثال «1
KiB» و «1 MiB»
بهترتیب
بهصورت «1 K»
و «1 M» نشان
داده
میشوند و
بخش «iB» از
این
اختصارات
عمداً حذف
میگردد.
-H, --list-columns
ستونهای
موجود را
فهرست کن؛
همراه با --json
یا --raw برای
دریافت
خروجی
ماشینخوان
استفاده
شود.
-D, --discard
اطلاعات
مربوط به
قابلیتهای
دیسکارد و
آزادسازی
فضا (TRIM، UNMAP) را
برای هر
دستگاه چاپ
کن.
-d, --nodeps
دستگاههای
نگهدارنده
(holder) یا وابسته
(slave) را چاپ نکن.
برای مثال lsblk
--nodeps /dev/sda فقط
اطلاعات
مربوط به
دستگاه sda را
چاپ
میکند.
-E, --dedup
ستون
از
ستون
بهعنوان
کلید حذف
موارد
تکراری
برای درخت
خروجی
استفاده کن.
اگر کلید
برای
دستگاه در
دسترس
نباشد، یا
دستگاه یک
پارتیشن
باشد و
دستگاه
والد کل
دیسک همان
کلید را
فراهم کند،
دستگاه
همیشه چاپ
میشود.
کاربرد
متداول آن
حذف موارد
تکراری
خروجی در
دستگاههای
چندمسیره
(multi-path) سیستم
است، مثلاً
با -E WWN.
-e, --exclude
فهرست
دستگاههای
مشخصشده
در فهرست
جداشده با
کاما از
شمارههای
اصلی
دستگاه (major device numbers)
را مستثنی
کن. توجه
داشته
باشید که
دیسکهای
رم (major=1) در صورت
عدم تعیین --all
بهطور
پیشفرض
مستثنی
هستند. این
فیلتر تنها
برای
دستگاههای
سطح بالا
اعمال
میشود. این
ممکن است در
قالب خروجی
--list که
سلسلهمراتب
دستگاهها
آشکار نیست
گمراهکننده
باشد.
-f, --fs
اطلاعات
سیستمفایلها
را چاپ کن.
این گزینه
معادل
-o
NAME,FSTYPE,FSVER,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINTS
است.
اطلاعات
معتبر
درباره
فایلسیستمها
و raidها توسط
دستور
blkid(8)
ارائه
میشود.
--hyperlink[=حالت]
مسیرهای
نقاط اتصال
را بهصورت
ابرپیوندهای
ترمینال
چاپ کن.
مقدار
حالت
میتواند
«always» (همیشه)،
«never» (هرگز) یا
«auto» (خودکار)
باشد.
آرگومان
اختیاری
پیشفرض در
صورت عدم
تعیین «auto»
است. حالت
«auto» به این
معناست که
ابرپیوندها
تنها در
صورت ارسال
خروجی به
ترمینال
استفاده
میشوند.
-I, --include
فهرست
تنها
دستگاههای
مشخصشده
در فهرست
جداشده با
کاما از
شمارههای
اصلی
دستگاه (major numbers)
را شامل کن.
فیلتر فقط
روی
دستگاههای
سطح بالا
اعمال
میشود. این
ممکن است
برای قالب
خروجی --list که
سلسلهمراتب
در آن مشخص
نیست
گیجکننده
باشد.
-i, --ascii
از
کاراکترهای
اسکی (ASCII) برای
قالببندی
درختی
استفاده
کن.
-J, --json
از قالب
خروجی JSON
استفاده کن.
قویاً
توصیه
میشود از
--output و در صورت
نیاز از --tree
استفاده
کنید. توجه
کنید که children[]
تنها در
صورتی
استفاده
میشود که
ستون NAME یا
گزینه --tree به
کار رود.
-l, --list
خروجی را
در قالب یک
فهرست ساده
تولید کن.
خروجی
اطلاعاتی
در مورد
روابط میان
دستگاهها
ارائه
نمیدهد و
از نسخه 2.34 به
بعد، هر
دستگاه فقط
یک بار چاپ
میشود مگر
آنکه --pairs یا --raw
مشخص شده
باشد
(خروجیهای
قابل تجزیه
به روش
سازگار با
گذشته
نگهداری
میشوند).
-M, --merge
والدهای
زیردرختها
را
گروهبندی
کن تا خروجی
خواناتری
برای
دستگاههای
RAID و چندمسیره
(Multi-path) فراهم
شود. این
گزینه
نیازمند
خروجی
درختیشکل
است.
-m, --perms
اطلاعات
مربوط به
مالک، گروه
و مجوزهای
دسترسی
دستگاه را
چاپ کن. این
گزینه
معادل -o NAME,SIZE,OWNER,GROUP,MODE
است.
-N, --nvme
تنها
اطلاعات
مربوط به
دستگاههای
NVMe را چاپ کن.
-v, --virtio
تنها
اطلاعات
مربوط به
دستگاههای
virtio را چاپ کن.
-n, --noheadings
سطر
سرآیند
(عناوین
ستونها) را
چاپ نکن.
-o, --output
فهرست
مشخص
کردن
ستونهای
خروجی جهت
چاپ. برای
دریافت
فهرستی از
تمام
ستونهای
پشتیبانیشده
از
--list-columns
استفاده
کنید.
ستونها
ممکن است بر
خروجی
درختی
تأثیر
بگذارند.
حالت
پیشفرض
استفاده از
درخت برای
ستون «NAME» است
(همچنین
--tree
را ببینید).
فهرست
پیشفرض
ستونها در
صورتی که
فهرست در
قالب
+فهرست
مشخص شود
قابل گسترش
است (مانند lsblk
-o +UUID).
-O, --output-all
چاپ تمام
ستونهای
موجود.
-P, --pairs
تولید
خروجی در
قالب
جفتهای
key="value". خطوط
خروجی
همچنان بر
اساس
وابستگیها
مرتب هستند.
تمام
نویسههای
بالقوه
ناامن با کد
هگز اسکیپ
میشوند (\x<code>).
همچنین
گزینه --shell را
ببینید.
-p, --paths
چاپ
مسیرهای
کامل
دستگاه.
-Q, --filter
عبارت
تنها
دستگاههایی
را چاپ کن که
با شرایط
مشخصشده
در عبارت
مطابقت
دارند.
فیلتر پیش
از
جمعآوری
دادهها
توسط lsblk برای
تمام
ستونهای
خروجی
ارزیابی
میشود.
تنها
دادههای
ضروری برای
ارزیابی
تنبلانه
عبارت از
سیستم
بازیابی
میشوند.
این روش
میتواند
کارایی را
در مقایسه
با
فیلترگذاری
پس از اجرا
(مانند
ابزارهایی
چون grep(1)) بهبود
بخشد.
این
قابلیت
آزمایشی (EXPERIMENTAL)
است. همچنین
scols-filter(5) را
ببینید.
برای
نمونه، حذف
sda و sdb، اما چاپ
بقیه موارد
(عملگر '!~'
عملگر
انطباق
عبارت منظم
منفی است):
lsblk --filter 'NAME !~ "sd[ab]"'
--highlight
عبارت
رنگی
کردن خطوطی
که با عبارت
مطابقت
دارند. این
قابلیت
آزمایشی (EXPERIMENTAL)
است. همچنین
scols-filter(5) را
ببینید.
--ct نام [:
پارامتر [:
تابع ]]
تعریف یک
شمارنده
سفارشی.
شمارندهها
پس از خروجی
استاندارد
چاپ
میشوند.
نام، نام
سفارشی
شمارنده
است،
پارامتر
اختیاری
نام ستونی
است که برای
شمارنده
استفاده
میشود، و
تابع
اختیاری
تابع تجمیع
را مشخص
میکند؛
توابع
پشتیبانیشده
عبارتند از:
count، min، max یا sum.
مقدار
پیشفرض count
است.
اگر
پارامتر
مشخص نشود،
شمارنده
تعداد خطوط
را
میشمارد.
این قابلیت
آزمایشی (EXPERIMENTAL)
است. همچنین
--ct-filter را
ببینید.
برای
نمونه، --ct
MyCounter:SIZE:sum مجموع SIZE
را از تمام
خطوط
محاسبه
میکند؛ و
برای شمارش
تعداد
دیسکهای SATA
میتوان از
دستور زیر
استفاده
کرد:
lsblk --ct-filter 'TYPE=="disk" && TRAN=="sata"' --ct "Number of SATA devices"
--ct-filter
عبارت
تعریف یک
محدودیت
برای
شمارنده
بعدی. این
قابلیت
آزمایشی (EXPERIMENTAL)
است. همچنین
--ct و
scols-filter(5) را
ببینید.
برای
نمونه،
تجمیع
اندازهها
بر اساس نوع
دستگاه:
lsblk --ct-filter 'TYPE=="part"' --ct Partitions:SIZE:sum \
--ct-filter 'TYPE=="disk"' --ct WholeDisks:SIZE:sum
-r, --raw
تولید
خروجی در
قالب خام.
خطوط خروجی
همچنان بر
اساس
وابستگیها
مرتب هستند.
تمام
نویسههای
بالقوه
ناامن در
ستونهای NAME،
KNAME، LABEL، PARTLABEL و MOUNTPOINT با
کد هگز
اسکیپ
میشوند
(\x<code>).
-S, --scsi
تنها
اطلاعات
مربوط به
دستگاههای
SCSI را چاپ کن.
تمام
پارتیشنها،
دستگاههای
وابسته و
نگهدارنده
نادیده
گرفته
میشوند.
-s, --inverse
چاپ
وابستگیها
به ترتیب
معکوس. اگر
خروجی --list
درخواست
شده باشد،
خطوط
همچنان بر
اساس
وابستگیها
مرتب
میشوند.
-T,
--tree[=ستون]
اجبار به
استفاده از
قالب خروجی
درختی. اگر
ستون مشخص
شود، درخت
در آن ستون
چاپ میشود.
ستون
پیشفرض NAME
است.
-t, --topology
اطلاعات
توپولوژی
دستگاه
بلوکی را
چاپ کن. این
گزینه
معادل زیر
است:
-o
NAME,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE,RA,WSAME.
-w, --width
تعداد
عرض
خروجی را به
تعداد
نویسهها
مشخص
میکند.
مقدار
پیشفرض
تعداد
ستونهای
ترمینال
است و اگر در
ترمینال
اجرا نشود،
عرض خروجی
بهطور
پیشفرض
اصلاً
محدود
نمیشود.
این گزینه
همچنین
lsblk را
ملزم
میکند که
فرض کند
نویسههای
کنترلی
ترمینال و
نویسههای
ناامن مجاز
نیستند.
کاربرد
مورد
انتظار
برای مثال
زمانی است
که
lsblk توسط
دستور
watch(1)
استفاده
میشود.
-x, --sort
ستون
مرتبسازی
سطرهای
خروجی بر
اساس ستون.
این گزینه
بهطور
پیشفرض
قالب خروجی
--list را فعال
میکند.
میتوان از
گزینه --tree
برای اجبار
به خروجی
درختی
استفاده
کرد که در
این حالت
شاخههای
درخت بر
اساس آن
ستون مرتب
میشوند.
-y, --shell
نام ستون
تغییر
خواهد کرد
تا فقط شامل
نویسههای
مجاز برای
شناسههای
متغیر شل
باشد؛ برای
نمونه MIN_IO و FSUSE_PCT
بهجای MIN-IO و %FSUSE.
این گزینه
برای مثال
همراه با --pairs
کاربرد
دارد. توجه
داشته
باشید که
این ویژگی
در نسخه 2.37
برای --pairs
بهطور
خودکار
فعال شده
بود، اما به
دلیل مسائل
سازگاری،
اکنون لازم
است این
رفتار با --shell
درخواست
شود.
-z, --zoned
اطلاعات
مربوط به
ناحیهبندی
(zoned) را برای هر
دستگاه چاپ
کن.
--sysroot پوشه
جمعآوری
دادهها
برای یک
نمونه
لینوکس غیر
از
نمونهای
که دستور lsblk
از آن صادر
شده است.
پوشه
مشخصشده
ریشه سیستم
(system root) نمونه
لینوکسی
است که باید
بازرسی شود.
گرههای
دستگاههای
واقعی در
پوشه مقصد
را میتوان
با
فایلهای
متنی حاوی
ویژگیهای udev
جایگزین
کرد.
--properties-by
فهرست
این
گزینه
روشهای
مورد
استفاده
توسط
lsblk را
برای
جمعآوری
اطلاعات
درباره
سیستمفایلها
و جداول
پارتیشن
مشخص
میکند. این
فهرست،
فهرستی
جداشده با
کاما از نام
روشها است.
تنظیم
پیشفرض
«file,udev,blkid» است.
روشهای
پشتیبانیشده
عبارتند از:
udev
دادهها
را از
پایگاه
داده udev
میخواند.
در صورت عدم
موفقیت، به
روش بررسی
بعدی
میرود.
blkid
دادهها
را
مستقیماً
با استفاده
از libblkid از
دستگاه
میخواند.
در صورت عدم
موفقیت، به
روش بررسی
بعدی
میرود.
file
دادهها
را از یک
فایل
میخواند.
این روش
تنها در
صورتی
استفاده
میشود که
گزینه --sysroot
مشخص شده
باشد. در
صورت
استفاده،
این روش
همیشه به
بررسی
خاتمه
میدهد.
none
هیچ
بررسی
انجام
نمیدهد.
این روش
همیشه
فرآیند
بررسی را
متوقف
میکند.
-h, --help
نمایش
متن راهنما
و خروج.
-V, --version
نمایش
نگارش و
خروج.