بخش ۱۲ – لیست کردن محتوا در لینوکس با دستور 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
هر ستون چیست؟
- نوع فایل و مجوزها (
-rw-r--r--یاdrwxr-xr-x) - تعداد لینکها
- مالک (user)
- گروه (group)
- اندازه (bytes)
- تاریخ و ساعت آخرین تغییر
- نام فایل یا پوشه
۲) نمایش فایلهای مخفی (-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→ شمارش تعداد اقلام
بخش ۹: خطاها و اشتباهات رایج
- استفاده از
lsبرای دیدن محتوایی که نیاز به دسترسی root دارد → خطایPermission denied - فراموش کردن فایلهای مخفی → فکر میکنی پوشه خالی است در حالی که پر است
- استفاده افراطی از
ls -Rدر مسیرهای بزرگ → حجم خروجی زیاد، سیستم کند میشود - استفاده از
lsدر اسکریپت برای پردازش فایلها → ممکن است به خاطر فاصله یا کاراکتر خاص در نامها مشکل ایجاد کند (بهتر است از bash globbing یا find استفاده شود)
بخش ۱۰: تمرینهای عملی
۱. نمایش همه فایلها، حتی مخفی، با جزئیات و اندازه خوانا:
ls -lah
۲. فایلهای مرتب بر اساس تغییرات جدید:
ls -lt
۳. فقط فایلهای .sh در مسیر فعلی:
ls *.sh
۴. مرتب بر اساس پسوند:
ls -X
۵. فهرست بازگشتی از /etc, نمایش فقط مسیرها:
ls -d /etc/*/
بخش ۱۱: پروژه کوچک – دستهبندی فایلها
هدف: پوشهای با انواع فایل (txt, jpg, sh, pdf) داری. میخواهیم با ls بررسی کنیم و بفهمیم از هر نوع چندتا داریم.
گامها:
- وارد مسیر شو:
cd ~/Downloads
- فایلهای txt:
ls *.txt | wc -l
- فایلهای عکس:
ls *.jpg *.png 2>/dev/null | wc -l
- اجرای ترکیب با
grep:
ls | grep ".pdf$"
- مرتب بر اساس اندازه:
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 و … میآمیزند. - یادگیری کامل آن به معنی صرفهجویی در زمان و افزایش سرعت کار با لینوکس است.