بخش ۱۲ – لیست کردن محتوا در لینوکس با دستور ls

""

مقدمه: چرا ls مهم‌ترین دستور شروع کار با لینوکس است؟

وقتی وارد دنیای لینوکس می‌شوی، همه‌چیز کمی متفاوت از ویندوز یا macOS به نظر می‌رسد.
به‌جای اینکه با دوبار کلیک روی پوشه‌ها لیست فایل‌ها را ببینی، اینجا باید با خط فرمان (ترمینال) کار کنی. اولین گام در این مسیر این است که بدانی در کجا هستی و چه چیزهایی آنجا وجود دارند.

در محیط گرافیکی، یک پنجره فایل منیجر باز می‌کنی و محتویات پوشه را می‌بینی. در خط فرمان، ابزار اصلی برای این کار، همین دستور ساده و البته قدرتمند ls است.

ls مخفف کلمه list است، یعنی “لیست کردن”. کارش واضح است: محتویات مسیر موردنظر را نمایش می‌دهد.
اما واقعیت این است که ls فقط یک “لیست ساده” نیست؛ این دستور می‌تواند:

  • جزئیات کامل هر فایل و پوشه
  • فیلتر کردن فایل‌های خاص
  • مرتب‌سازی بر اساس معیارهای مختلف
  • نمایش فایل‌های مخفی
  • لیست کل زیرپوشه‌ها (حالت بازگشتی)
  • نمایش رنگ‌بندی برای تمایز فایل‌ها، لینک‌ها و پوشه‌ها
  • و حتی فرمت خروجی سفارشی

را انجام دهد.


بخش ۱: تاریخچه و منطق وجودی ls

ریشه‌ی ls برمی‌گردد به سیستم‌عامل UNIX که دهه ۷۰ میلادی ساخته شد. طراحان یونیکس ایده‌ای ساده ولی مهم داشتند: یک دستور باید دقیقاً یک کار را خوب انجام دهد.
ls همان دستور کوچک و سریع برای “دیدن محتوا” بود. چون اکثر کاربران یونیکس از راه دور (remote) به سرورها وصل می‌شدند و صفحه نمایش فقط متن را نمایش می‌داد، باید راهی سریع و سبک برای دیدن فایل‌ها می‌داشتند.

امروز در لینوکس — که خودش بر پایه‌ی مفاهیم یونیکس ساخته شده — دستور ls همان جایگاه را دارد و تقریباً در هر جلسه آموزش لینوکس، جزو اولین دستورات معرفی می‌شود.


بخش ۲: ساختار کلی ls

فرم پایه‌ی دستور:

ls [گزینه‌ها] [مسیر]
  • گزینه‌ها (Options / Flags): با یک یا دو خط تیره شروع می‌شوند، مثل -l یا --all
  • مسیر (Path): مسیر پوشه یا فایل‌هایی که می‌خواهی لیست کنی. اگر چیزی ننویسی، مسیر فعلی (pwd) استفاده می‌شود.

نمونه ساده:

ls

این دستور محتویات مسیر جاری را، بدون جزئیات اضافی، نمایش می‌دهد.


بخش ۳: اجرای ساده ls و مشاهده خروجی

الف) بدون آرگومان

ls

خروجی ممکن است مثلاً این باشد:

Desktop  Documents  Downloads  Music  notes.txt
  • نام پوشه‌ها و فایل‌ها را می‌بینی
  • به‌طور پیش‌فرض فایل‌های مخفی (. در اول نام) نمایش داده نمی‌شوند
  • ترتیب پیش‌فرض معمولاً حروف الفبا است

ب) با مسیر مشخص

ls /etc
  • این خروجی، محتویات /etc را نشان می‌دهد
  • می‌توانی مسیر کامل یا نسبی بدهی:
ls ../Pictures

ج) چند مسیر هم‌زمان

ls /etc /var /home

ls محتوای هر مسیر را جداگانه با عنوان مسیر نمایش می‌دهد.


بخش ۴: آشنایی با پرچم‌های پرکاربرد

در اینجا پرچم‌های معروف را یک به یک بررسی می‌کنیم، با مثال و توضیح کاربردی.


۱) نمایش جزئیات کامل (-l)

ls -l

خروجی نمونه:

-rw-r--r--  1 ali  ali   532 Sep 18 09:00 notes.txt
drwxr-xr-x  2 ali  ali  4096 Sep 17 18:20 Documents

هر ستون چیست؟

  1. نوع فایل و مجوزها (-rw-r--r-- یا drwxr-xr-x)
  2. تعداد لینک‌ها
  3. مالک (user)
  4. گروه (group)
  5. اندازه (bytes)
  6. تاریخ و ساعت آخرین تغییر
  7. نام فایل یا پوشه

۲) نمایش فایل‌های مخفی (-a)

ls -a

در لینوکس، فایل/پوشه‌هایی که با . شروع شوند مخفی‌اند:

.  ..  .bashrc  .profile  Documents
  • . → پوشه فعلی (current directory)
  • .. → پوشه والد (parent directory)

۳) نمایش جزئیات + مخفی (-la)

ls -la

یکی از پرکاربردترین ترکیب‌ها برای دیدن همه‌چیز همراه با جزئیات.


۴) اندازه‌های خوانا برای انسان (-h)

ls -lh

به‌جای:

4096

نمایش می‌دهد:

4.0K
  • K → کیلوبایت
  • M → مگابایت
  • G → گیگابایت

۵) مرتب‌سازی بر اساس زمان (-t)

ls -lt

جدیدترین فایل‌ها اول. مناسب فهمیدن چه چیزی تازه آپدیت شده است.


۶) معکوس کردن ترتیب (-r)

ls -ltr

ترتیب زمان را برعکس می‌کند → قدیمی‌ترین‌ها اول.


۷) لیست بازگشتی (-R)

ls -R

تمام زیرپوشه‌ها و محتوا را هم می‌آورد:

Documents:
file1.txt
Notes:

Notes:
note1.txt
note2.txt

⚠️ هشدار: در دایرکتوری‌های بزرگ، خروجی می‌تواند هزاران خط شود.


۸) دیدن فقط مسیر پوشه‌ها (-d)

ls -d */

فقط نام دایرکتوری‌ها را لیست می‌کند.


۹) گروه‌بندی پوشه‌ها جلوتر

ls --group-directories-first

پوشه‌ها در بالا، بعد فایل‌ها.


بخش ۵: سایر پرچم‌ها و امکانات کمتر شناخته‌شده

لینوکس پر از قابلیت‌های پنهان است و ls هم همین‌طور.

  • -S → مرتب‌کردن بر اساس اندازه فایل (بزرگ‌ترین اول)
  • -X → مرتب‌کردن بر اساس پسوند فایل
  • -U → ترتیب اصلی فایل‌ها بدون مرتب‌سازی
  • -i → نمایش شماره inode هر فایل
  • -F → اضافه کردن / به آخر پوشه‌ها، * به فایل‌های اجرایی، و غیره

بخش ۶: رنگ‌بندی در خروجی

در بیشتر توزیع‌ها، ls با alias به ls --color=auto وصل شده است.

  • آبی: پوشه
  • سبز: اجرایی
  • فیروزه‌ای: لینک
  • قرمز: آرشیو یا فایل فشرده

برای فعال‌سازی دستی:

ls --color=always

بخش ۷: فیلتر کردن با الگوها (Globbing)

مثال‌ها:

ls *.txt      # همه txt
ls file?.jpg  # نام‌های file1.jpg تا file9.jpg
ls a[0-9]*    # شروع با a و بعد یک عدد
  • * → هر تعداد کاراکتر
  • ? → دقیقا یک کاراکتر
  • [ ] → محدوده یا لیست کاراکترها

بخش ۸: ترکیب با سایر دستورات (Pipe)

مهم‌ترین قدرت ls زمانی است که خروجی‌اش را به دستورات دیگر بدهی.

ls -l | grep ".log"
ls | sort
ls -lh | less
ls -l | wc -l
  • با grep → فیلتر کردن نتایج
  • با sort → مرتب‌سازی سفارشی
  • با less → پیمایش خروجی طولانی
  • با wc -l → شمارش تعداد اقلام

بخش ۹: خطاها و اشتباهات رایج

  1. استفاده از ls برای دیدن محتوایی که نیاز به دسترسی root دارد → خطای Permission denied
  2. فراموش کردن فایل‌های مخفی → فکر می‌کنی پوشه خالی است در حالی که پر است
  3. استفاده افراطی از ls -R در مسیرهای بزرگ → حجم خروجی زیاد، سیستم کند می‌شود
  4. استفاده از ls در اسکریپت برای پردازش فایل‌ها → ممکن است به خاطر فاصله یا کاراکتر خاص در نام‌ها مشکل ایجاد کند (بهتر است از bash globbing یا find استفاده شود)

بخش ۱۰: تمرین‌های عملی

۱. نمایش همه فایل‌ها، حتی مخفی، با جزئیات و اندازه خوانا:

ls -lah

۲. فایل‌های مرتب بر اساس تغییرات جدید:

ls -lt

۳. فقط فایل‌های .sh در مسیر فعلی:

ls *.sh

۴. مرتب بر اساس پسوند:

ls -X

۵. فهرست بازگشتی از /etc, نمایش فقط مسیرها:

ls -d /etc/*/

بخش ۱۱: پروژه کوچک – دسته‌بندی فایل‌ها

هدف: پوشه‌ای با انواع فایل (txt, jpg, sh, pdf) داری. می‌خواهیم با ls بررسی کنیم و بفهمیم از هر نوع چندتا داریم.

گام‌ها:

  1. وارد مسیر شو:
cd ~/Downloads
  1. فایل‌های txt:
ls *.txt | wc -l
  1. فایل‌های عکس:
ls *.jpg *.png 2>/dev/null | wc -l
  1. اجرای ترکیب با grep:
ls | grep ".pdf$"
  1. مرتب بر اساس اندازه:
ls -lhS

بخش ۱۲: شخصی‌سازی ls

  • تعریف alias در ~/.bashrc:
alias ll='ls -lah --color=auto'
alias la='ls -A'

سپس:

source ~/.bashrc
  • تغییر رنگ‌ها → از طریق LS_COLORS

بخش ۱۳: جمعبندی نهایی

  • ls قلب دیدن محتوا در ترمینال است.
  • با ترکیب پرچم‌ها، قدرت فوق‌العاده پیدا می‌کند.
  • بخش بزرگی از کارهای روزمره با ls -lah و چند ترکیب ساده انجام می‌شود.
  • حرفه‌ای‌ها ls را با grep, sort, less و … می‌آمیزند.
  • یادگیری کامل آن به معنی صرفه‌جویی در زمان و افزایش سرعت کار با لینوکس است.
محمد وب‌سایت

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *