دستور ls، یکی از دستورات اساسی است که هر کاربر لینوکس باید بداند. برای لیست کردن اطلاعات مربوط به فایلها و دایرکتوریهای سیستم، از این دستور استفاده میشود. ابزار ls، بخشی از بسته ابزارهای هسته GNU است؛ که در تمام توزیعهای لینوکس نصب شده است.
در این آموزش، نحوه استفاده از دستور ls را از طریق مثالهای عملی و توضیحات مفصل در مورد رایج ترین گزینههای ls به شما نشان خواهیم داد.
نحوه استفاده از دستور ls
شما میتوانید با مشاهده ویدیو زیر با ساختار کلی این دستور آشنا شوید:
ساختار دستور ls به صورت زیر است:
ls [OPTIONS] [FILES]
در صورت عدم استفاده از گزینهها و آرگومانها، ls به تنهایی لیستی از نام کلیهی فایلها را در دایرکتوری جاری نمایش میدهد:
$ ls
در خروجی، فایلها به صورت زیر به ترتیب حروف الفبا نشان داده میشوند:
cache db empty games lib local lock log mail opt run spool tmp
برای لیست کردن فایلهای یک دایرکتوری خاص، باید مسیر آن دایرکتوری به صورت آرگمان به دستور ls داده شود. به عنوان مثال، برای لیست کردن محتوای دایرکتوری etc/، باید دستور زیر را تایپ کنید:
$ ls /etc
همچنین میتوانید چندین دایرکتوری و فایل را که با فاصله از همدیگر جدا شده اند، به دستور ls ارسال کنید:
$ ls /etc /var /etc/passwd
اگر کاربری که شما با آن وارد سیستم شده اید، مجوز خواندن دایرکتوری را نداشته باشد؛ در این صورت با پیامی رو به رو میشوید که در آن به شما میگوید، نمیتواند دایرکتوری را باز کند:
$ ls /root
درنتیجه، خروجی به صورت زیر خواهد بود:
ls: cannot open directory '/root': Permission denied
دستور ls تعدادی گزینه دارد. در بخشهای زیر، پر استفاده ترین گزینههای آن را بررسی خواهیم کرد.
این مطلب نیز ممکن است برای شما مفید باشد: دستور rm در لینوکس
فرمت لیست فایلها با جزئیات
خروجی پیش فرض دستور ls، تنها نام فایلها و دایرکتوریها را نشان میدهد، که خیلی کاربردی نیست.
گزینه ی l- (حروف کوچک L) باعث میشود ls فایلها را با فرمت لیست طولانی چاپ کرده و جزئیات را نیز نمایش دهد.
هنگامیکه از قالب لیست طولانی استفاده کنید، دستور ls اطلاعات زیر را برای فایل نمایش میدهد:
- نوع فایل
- مجوزهای فایل
- تعداد پیوندهای سخت به فایل
- مالک فایل
- گروه فایل
- حجم فایل
- تاریخ و زمان
- نام فایل
به عنوان مثال، دستور زیر را در نظر بگیرید:
$ ls -l /etc/hosts
این دستور خروجی زیر را نماش داده می شود:
-rw-r--r-- 1 root root 337 Oct 4 11:31 /etc/hosts
در این خروجی:
کاراکتر اول نوع فایل را نشان میدهد. در مثال ما، اولین کاراکتر - است؛ که نشانگر یک فایل معمولی است. مقادیر انواع دیگر فایلها به شرح زیر است:
- - : فایل معمولی
- b : فایل ویژهی مسدود
- c : فایل ویژهی کاراکتر
- d : دایرکتوری
- l : پیوند سمبولیک
- n : فایل شبکه
- p : فایل First In First Out
- s : سوکت
کاراکتر بعدی، مجوزهای فایل را نشان میدهند. سه کاراکتر اول برای کاربر، سه کاراکتر بعدی برای گروه و سه کاراکتر پس از آن، برای سایرین است.
شما میتوانید مجوزهای فایل را با دستور chmod تغییر دهید. کاراکتر مجوز میتواند مقادیر زیر را بگیرد:
- r : مجوز خواندن فایل
- w : مجوز نوشتن در فایل
- x : مجوز اجرای فایل
- s : اجرای فایل با مجوز مالک (stgid bit)
- t : مجوز تغییر تنها برای مالک (sticky bit)
در مثال ما rw-r - r-- به این معنی است، که کاربر میتواند فایل را بخواند و بنویسد و گروه و دیگران فقط میتوانند فایل را بخوانند.
عدد 1 پس از کاراکترهای مجوز، تعداد پیوندهای سخت به این فایل را نشان میدهد.
دو قسمت بعدی root root صاحب و گروه فایل را نشان میدهد و به دنبال آن اندازه فایل (337) در واحد بایت مشخص میشود. اگر میخواهید اندازهها را با فرمت قابل درک چاپ کنید، از گزینه h- استفاده نمایید. میتوانید با استفاده از دستور chown، مالک فایل را تغییر دهید.
Oct 4 11:31: تاریخ و ساعت آخرین اصلاح فایل است.
ستون آخر نام فایل است.
این مطلب نیز ممکن است برای شما مفید باشد: یافتن تعداد فایل های داخل یک دایرکتوری در گنو/لینوکس
نمایش فایلهای مخفی
به طور پیش فرض، دستور ls فایلهای مخفی را نشان نمیدهد. در لینوکس، فایل مخفی، فایلی است که با یک نقطه (.) شروع میشود.
برای نمایش همه فایلها؛ از جمله فایلهای مخفی از گزینه a- استفاده کنید:
$ ls -la ~/
در این صورت خروجی به صورت زیر خواهد بود:
drwxr-x--- 10 linuxize linuxize 4096 Feb 12 16:28 .
drwxr-xr-x 18 linuxize linuxize 4096 Dec 26 09:21 ..
-rw------- 1 linuxize linuxize 1630 Nov 18 2017 .bash_history
drwxr-xr-x 2 linuxize linuxize 4096 Jul 20 2018 bin
drwxr-xr-x 2 linuxize linuxize 4096 Jul 20 2018 Desktop
drwxr-xr-x 4 linuxize linuxize 4096 Dec 12 2017 .npm
drwx------ 2 linuxize linuxize 4096 Mar 4 2018 .ssh
مرتب سازی خروجی
همانطور که قبلاً نیز بیان شد؛ به طور پیش فرض دستور ls، فایلها را به ترتیب حروف الفبا لیست میکند.
گزینه sort-- به شما امکان میدهد که خروجی را با توجه به پسوند، اندازه، زمان و نسخه مرتب کنید:
- sort=extension-- (یا -X) : مرتب سازی بر اساس حروف الفبا با پسوند.
- sort=size-- (یا -S) : مرتب سازی بر اساس اندازه فایل.
- sort=time-- (یا -t) : مرتب سازی بر اساس زمان اصلاح.
- sort=version-- (یا -v) : مرتب سازی عادی براساس شمارههای ورژن.
اگر میخواهید نتایج را به صورت معکوس مرتب کنید، از گزینه r- استفاده نمایید.
به عنوان مثال، برای مرتب سازی فایلها در دایرکتوری var/ براساس زمان اصلاح و به صورت معکوس از دستور زیر استفاده کنید:
$ ls -ltr /var
لازم به ذکر است که، دستور ls کل فضای اشغال شده توسط محتوای دایرکتوری را نشان نمیدهد. برای به دست آوردن اندازه ی دایرکتوری، از دستور du استفاده نمایید.
لیست کردن دایرکتوریهای داخل یک دایرکتوری (زیردایرکتوریها) به صورت بازگشتی
استفاده از گزینه R- به همراه دستور ls، محتویات زیردایرکتوریها را به صورت بازگشتی نمایش میدهد:
$ ls -R
منبع:
0 دیدگاه
نوشتن دیدگاه