دستور 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

 

 

منبع:

linuxize