دستور ls در لینوکس و شبهیونیکس، فایلها و دایرکتوریها را فهرست میکند. این ابزار برای مسیریابی و مدیریت فایلها ضروری است و به شما امکان میدهد که اطلاعات فایلها را در دایرکتوری جاری یا مکانهای مشخص شده، مشاهده، مرتب و سازماندهی کنید. این دستور command-line (خط فرمان) توسط ارائه خروجیهای ساده تنها با چند دستور کوتاه، برای مبتدیان مناسب است. همچنین کاربران حرفهای میتوانند با استفاده از گزینههای مختلف، جزئیات دقیقتری دریافت کنند.
تصویر(۱)
در این مقاله، نحو (syntax) دستور ls، گزینههای رایج و مثالهای عملی آن بررسی میشوند. در پایان، شما قادر خواهید بود از این دستور برای سادهسازی مدیریت فایل و پیمایش کارآمد در سیستم لینوکس استفاده کنید.
نحوه اجرای دستور ls در لینوکس
سینتکس پایه دستور ls در لینوکس، به شکل زیر است:
ls [options] [file/directory]
- [options]: نحوه عملکرد دستور یا فرمت خروجی را تغییر میدهند. به عنوان مثال، گزینه -l لیستی مفصل از محتویات نمایش میدهد، در حالی که -a فایلهای مخفی را نیز شامل میشود.
- [file/directory]: مسیر یک فایل یا دایرکتوری را برای فهرست کردن محتویات آن مشخص میکند. به عنوان مثال، دستور ls /home/user/Documents محتویات پوشه Documents را نمایش میدهد.
به طور پیشفرض، اجرای دستور ls در لینوکس بدون آرگومان یا گزینه، فایلها و دایرکتوریها را در دایرکتوری فعال فعلی و قالبی فشرده، فهرست میکند.
گزینههای پرکاربرد ls command در لینوکس
مشابه سایر دستورات لینوکس مانند cp یا mv، میتوان دستور ls را با گزینههای مختلف ترکیب کرد تا رفتار آن تغییر کند یا خروجی قالببندی شود. در جدول زیر رایجترین گزینههای مورد استفاده دستور ls در لینوکس آورده شده است:
گزینه |
توضیحات |
l- |
نمایش فهرست مفصلی از ویژگیهای فایل، شامل مجوزها، حجم و زمان تغییر. |
-a- |
شامل فایلهای مخفی که با یک نقطه شروع میشوند. |
h- |
حجم فایل ها را در قالبی خوانا برای انسان، مانند کیلوبایت یا مگابایت، قالببندی میکند. |
R- |
فهرست مطالب دایرکتوریها را به صورت بازگشتی، شامل زیرشاخهها، نمایش میدهد. |
t- |
مرتبسازی فایلها بر اساس زمان اصلاح با نمایش فایلهایی که اخیراً اصلاح شدهاند. |
S- |
مرتبسازی فایلها بر اساس حجم، از بزرگترین به کوچکترین. |
r- |
ترتیب مرتبسازی هر گزینه دیگری را معکوس می کند. |
F– |
الحاق نمادها به نام فایلها برای نشان دادن نوع فایلها، مانند / برای دایرکتوریها یا @ برای لینکهای نمادین. |
color– |
به فایلها رنگ اضافه میکند تا انواع و مجوزهای فایل را متمایز نماید؛ این قابلیت به طور پیشفرض در بسیاری از سیستمها فعال است. |
d- |
فقط نام دایرکتوریها را بدون نمایش محتویاتشان فهرست می کند. |
i- |
نمایش شماره inode هر فایل. |
جدول(۱)
همچنین میتوانید گزینهها را با هم ترکیب کنید تا خروجیهای دقیقتر یا سفارشیتری تولید نمایید. به عنوان مثال:
- ls -lah – فهرست کردن تمام فایلها، از جمله موارد مخفی به همراه حجم قابل خواندن برای انسان.
- ls -lR – نمایش نمای دقیق از فایلها و دایرکتوریها، شامل تمام زیردایرکتوریها.
- ls -ltSr – فایلها را بر اساس حجم مرتب میکند، به طوری که کوچکترین فایلها ابتدا نمایش داده میشوند و آنها را با جزئیات نمایش میدهد.
تصویر(۲)
مثالهای استفاده از دستور ls
قبل از اجرای دستور ls، یک پنجره ترمینال را در دستگاه لینوکس خود باز کنید. برای کامپیوترهای محلی، نرمافزار ترمینال داخلی را به کار ببرید. اگر از سرور خصوصی مجازی (VPS) استفاده میکنید، توسط SSH از راه دور به سرور دسترسی پیدا نمایید. ترمینال خود را باز نموده و توسط دستور زیر و جایگزین کردن your_vps_ip با اطلاعات کاربری واقعی خود، وارد سرور شوید:
ssh root@your_vps_ip
فهرست کردن فایلهای دایرکتوری فعلی با دستور ls
با اجرای دستور ls در لینوکس بدون هیچ گزینهای شروع کنید. این مورد برای مسیریابی دایرکتوری، زمانی که فقط نیاز به مشاهده محتویات پوشه فعلی دارید، عالی است:
ls
خروجی، نام فایلها و دایرکتوریها را به ترتیب حروف الفبا نمایش میدهد و جزئیات اضافی مانند حجم فایل یا زمان تغییر را شامل نمیشود.
تصویر(۳)
فهرست کردن فایلها در یک دایرکتوری خاص
علاوه بر فهرست کردن فایلها در دایرکتوری جاری، دستور ls در لینوکس به شما این امکان را میدهد که مکانی خاص را برای مشاهده محتویات آن مشخص کنید. این ویژگی نیاز پیمایش به پوشه را از بین میبرد و در مدیریت ساختارهای پیچیده کمک میکند. شما میتوانید مسیری مطلق که از دایرکتوری ریشه (/) شروع میشود را مانند نمونه زیر استفاده کنید:
ls /home/user/Documents
با اجرای این دستور، محتویات پوشه Documents در مسیر home/user/ بدون توجه به دایرکتوری فعلی شما، فهرست میشود.
تصویر(۴)
از طرف دیگر، یک مسیر نسبی، مکان را نسبت به دایرکتوری فعلی مشخص میکند. به عنوان مثال:
ls ./Projects
این دستور محتویات پوشه Projects را که در دایرکتوری فعلی شما قرار دارد، نمایش میدهد.
تصویر(۵)
نکته تخصصی
یک نقطه (.) به دایرکتوری فعلی اشاره دارد. برای مثال، دستور ls /. به طور صریح محتویات دایرکتوری فعلی را فهرست میکند. در همین حال، دو نقطه (..) به دایرکتوری والد (یک سطح بالاتر) اشاره دارد. به عنوان مثال، دستور ls /.. محتویات پوشه والد را نشان میدهد.
استفاده از دستور ls برای مشاهده جزئیات ویژگیهای فایل
دستور ls در لینوکس تنها به نمایش نام فایلها محدود نمیشود؛ با افزودن گزینه l- میتوانید از آن برای مشاهده اطلاعات دقیق درباره فایلها و دایرکتوریها استفاده کنید:
ls -l
خروجی قالب طولانی، شامل ویژگیهای زیر است:
- مجوزهای فایل – نشاندهنده مجوزهای “خواندن”، “نوشتن” و “اجرا” برای مالک یا گروه فایل است که به صورت -rw-r–r– نمایش داده میشود.
- تعداد لینک ها – تعداد لینک های سخت به فایل یا دایرکتوری را نشان میدهد.
- مالک – نام کاربری مالک فایل را نمایش خواهد داد.
- گروه – گروهی را که فایل به آن تعلق دارد، نشان میدهد.
- اندازه فایل – حجم فایل را به بایت نشان خواهد داد.
- تاریخ اصلاح – آخرین زمانی که فایل اصلاح شده است.
- نام فایل – نام فایل یا دایرکتوری را فهرست میکند.
نمونه خروجی:
-rw-r--r-- 1 user group 4096 Jan 15 10:22 example.txt
- -rw-r–r– نشاندهنده مجوزهای فایل است.
- ۱ تعداد لینک های سخت به فایل را نشان میدهد.
- user مالک فایل است.
- group گروه فایل را نمایش میدهد.
- ۴۰۹۶ اندازه فایل به بایت است.
- Jan 15 10:22 تاریخ و زمان آخرین تغییر می باشد.
- example.txt نام فایل است.
این خروجی نشان میدهد که فایل example.txt متعلق به کاربر اصلی (root) است، عضو گروه group می باشد، حجم آن ۲۶۳۵ بایت بوده و آخرین بار در ۱۵ ژانویه ساعت ۰۰:۴۶ تغییر داده شده است.
مشاهده فایل های مخفی در لینوکس
برای مشاهده فایلهای مخفی در لینوکس، دستور ls -a را اجرا کنید. این دستور تمام فایلها و دایرکتوریها، از جمله فایلهای مخفی را نمایش میدهد. این ویژگی هنگام کار با فایلهای پیکربندی یا عیبیابی فایلهای سیستمی مخفی بسیار مفید است.
ls -a
هنگامی که این دستور اجرا گردد، لیستی از تمام فایلها و دایرکتوریها نمایش داده میشود. این دستور به شما اجازه میدهد تا فایلهای پنهان (که معمولاً با یک نقطه شروع میشوند) را مشاهده کنید.
تصویر(۶)
اگر میخواهید مسیرهای خاص مانند . (دایرکتوری فعلی) و … (دایرکتوری والد) را حذف کنید، در حالی که همچنان فایلهای مخفی دیگر را مشاهده مینمایید، از گزینه A- استفاده کنید:
ls -A
این دستور باعث میشود که خروجی تمیزتر باشد و فقط فایلها و دایرکتوریهای مخفی واقعی نمایش داده شوند.
تصویر(۷)
مرتبسازی فایلها بر اساس اندازه یا زمان
مرتبسازی فایلها، کمک میکند تا به سرعت بزرگترین یا جدیدترین فایلهای اصلاحشده را شناسایی کنید. برای مرتبسازی فایلها بر اساس حجم، از دستور ls در لینوکس با گزینه -S استفاده نمایید تا بزرگترین فایلها ابتدا نمایش داده شوند:
ls -S
این دستور فایلها را بر اساس حجم مرتب میکند و بزرگترین فایلها را در ابتدای لیست نمایش میدهد. اگر میخواهید فایلها را بر اساس زمان آخرین تغییر مرتب کنید، میتوانید از گزینه -t استفاده نمایید. این دستور فایلها را بر اساس زمان آخرین ویرایش مرتب میکند، به طوری که جدیدترین فایلها ابتدا نمایش داده شوند:
ls -t
ls -S
تصویر(۸)
در همین حال، گزینه t- فایلها را بر اساس زمان ویرایش مرتب میکند و فایلهایی که اخیراً ویرایش شدهاند را ابتدا نمایش میدهد.
ls -t
تصویر(۹)
نکته حرفهای برای استفاده از دستور ls در لینوکس
برای نمایش جزئیات بیشتر مانند مجوزهای فایل و حجم در حین مرتبسازی، میتوانید این گزینهها را با l- ترکیب کنید. به عنوان مثال:
- از ls -lS برای مرتبسازی بر اساس حجم استفاده نمایید.
- از ls -lt جهت مرتبسازی بر اساس زمان آخرین ویرایش کاربرد دارد.
ترکیب گزینهها (options) با دستور ls
ترکیب چند گزینه، دستور ls در لینوکس را قدرتمندتر میسازد. این رویکرد باعث صرفهجویی در زمان شده و نتایج دقیقتر یا متمرکزتری را ارائه میدهد. در ادامه چند مثال آورده شده است:
- ls -lAh – لیست کردن تمامی فایلها، از جمله فایلهای پنهان با نمایش حجم فایلها بر حسب کیلوبایت، مگابایت یا گیگابایت.
این ترکیب به شما امکان میدهد که تمامی فایلها، از جمله فایلهای مخفی را به همراه حجم آنها، به صورت مفصل مشاهده کنید.
تصویر(۱۰)
دستور ls -ltSr نمایش جزئیات فایلها را به این صورت انجام میدهد:
- بر اساس حجم: فایلها از کوچکترین به بزرگترین مرتب میشوند.
- بر اساس زمان ویرایش: سپس فایلها بر اساس زمان آخرین ویرایش مرتب میشوند.
این دستور ترکیبی از سه گزینه است که به شما کمک میکند فایلها را هم بر اساس حجم و هم زمان ویرایش به روشی سازمانیافته مشاهده کنید:
ls -ltSr
با اجرای این دستور، شما خروجی جزئیات فایلها را دریافت خواهید کرد که از کوچکترین فایلها به بزرگترین آنها و سپس بر اساس زمان ویرایش مرتب شدهاند.
تصویر(۱۱)
- ls -Rla – تمامی فایلها، شامل فایلهای مخفی را تحت سلسله مراتب پوشهها، با جزئیات نمایش میدهد.
تصویر(۱۲)
استفاده از دستور ls در اسکریپتها برای خودکارسازی
ترکیب دستور ls در لینوکس با تکنیکهای اسکریپتنویسی shell، به شما این امکان را میدهد تا وظایف تکراری مانند پردازش دستهای فایلها، نظارت بر سیستم یا تولید گزارشها را خودکارسازی کنید. در اینجا دو نمونه اسکریپت ساده bash آورده شده است که از دستور ls در لینوکس برای خودکارسازی وظایف مختلف استفاده میکنند:
۱. اسکریپتی برای فهرست کردن فایلهای بزرگتر از ۱ مگابایت در یک دایرکتوری و مرتبشده بر اساس حجم:
#!/bin/bash
# Directory to scan
directory="/path/to/directory"
# List files larger than 1 MB in long format, sorted by size
echo "Files larger than 1 MB in $directory:"
ls -lS "$directory" | awk '$5 > 1048576 {print $0}'
- ‘awk ‘$5 > 1048576 {print $0}: این بخش اسکریپت، فایلهایی که حجم آنها بیشتر از ۱ مگابایت (۱۰۴۸۵۷۶ بایت) هستند را فیلتر کرده و جزئیات را چاپ مینماید.
- “directory=”/path/to/directory: این متغیر مسیر دایرکتوری را که باید اسکن شود، مشخص میکند. در این مثال، /path/to/directory است.
۲. اسکریپتی برای ایجاد یک گزارش از فایلهای مخفی موجود درون دایرکتوری:
#!/bin/bash
# Directory to scan
directory="/path/to/directory"
# Output file
output_file="hidden_files_report.txt"
# Generate a report of hidden files
echo "Generating hidden files report for $directory..."
ls -la "$directory" | grep "^\." > "$output_file"
echo "Report saved to $output_file."
- این اسکریپت از دستور ls -la برای نمایش فایلهای مخفی (که با یک نقطه شروع میشوند) استفاده میکند.
- خروجی آن توسط دستور grep “.\^” فیلتر میشود تا فقط فایلهای مخفی نمایش داده شوند.
- نهایتا، گزارش در فایل hidden_files_report.txt ذخیره میشود.
این اسکریپتها نمونههایی از نحوه استفاده دستور ls در اسکریپتهای shell برای خودکارسازی وظایف مختلف مانند نظارت بر سیستم و تولید گزارشها هستند.
تصویر(۱۳)
مشاهده لینک های نمادین و انواع فایلها
دستور ls در لینوکس میتواند به تشخیص لینک های نمادین و انواع مختلف فایل کمک کند. از گزینه F- برای افزودن نمادها به نام فایلها استفاده کنید تا نوع آنها را نشان دهد:
- / – دایرکتوری
- @ – لینک نمادین (symbolic link)
- * – فایل اجرایی (executable file)
- = – سوکت (socket)
- | – FIFO (پایپ نامگذاریشده)
استفاده از این گزینه به صورت زیر است:
ls -F
خروجی به شکل زیر خواهد بود:
تصویر(۱۴)
مرتبسازی فایلها بر اساس پسوند یا نام
مرتبسازی فایلها بر اساس پسوند یا نام، روشی کاربردی برای سازماندهی و یافتن انواع خاصی از فایلها در یک دایرکتوری است.
از گزینه `sort=extension–` برای گروهبندی فایلها بر اساس پسوندشان استفاده کنید. این گزینه برای دایرکتوریهایی که شامل ترکیبی از فرمتهای فایل مانند TXT یا JPG هستند بسیار کاربردی است. به عنوان مثال:
ls --sort=extension
تصویر(۱۵)
به طور پیشفرض، دستور ls فایلها را بر اساس نامشان با ترتیب حروف الفبا مرتب میکند. برای معکوس کردن ترتیب مرتبسازی، از r- استفاده کنید:
ls -r
همچنین میتوانید از ترکیب –sort=extension با -r برای فهرست کردن فایلها بر اساس پسوند به صورت معکوس استفاده کنند:
ls --sort=extension -r
تصویر(۱۶)
استفاده از دستور ls با wildcards
دستور ls از wildcards پشتیبانی میکند، بنابراین میتوانید فایلها و دایرکتوریهایی را که با الگوهای نامگذاری یا انواع فایل خاص مطابقت دارند، فهرست کنید. این کار به شما کمک میکند تا سریعا فایلهای موردنیاز خود را در یک دایرکتوری پیدا نمایید.
در ادامه چند wildcard رایج و مثالهای آنها آورده شده است:
ستاره (*) – با صفر یا تعداد بیشتری از کاراکترها در نام فایل مطابقت دارد:
ls *.txt
علامت سؤال (?) – دقیقاً با یک کاراکتر در نام فایل مطابقت دارد.
ls file?.jpg
کروشه ([ ]) – با هر کاراکتر تکی داخل کروشه تطابق دارد. همچنین میتوانند دامنهای از کاراکترها را مشخص نمایند.
ls file[1-3].txt
ls file[a-c].txt
همچنین میتوانید از wildcards برای الگوهای پیچیدهتر استفاده کنید. به عنوان مثال، برای فهرست کردن تمام فایلهای تصویری در یک دایرکتوری:
ls *.jpg *.png
تصویر(۱۷)
یا برای فهرست کردن فایلهایی با نامهای دو کاراکتری که پسوند دلخواهی دارند:
ls ??.*
تصویر(۱۸)
نمایش شماره گرههای inode
در لینوکس، هر فایل و دایرکتوری دارای یک شناسه یکتا به نام شماره inode است که جزئیاتی مانند حجم فایل، مجوزها، مالک و مکان آن روی دیسک را ذخیره میکند. برای مشاهده شمارههای inode در کنار نام فایلها، دستور ls را با گزینه -i اجرا کنید:
ls -i
این دستور شماره inode هر فایل یا دایرکتوری را قبل از نام آن نمایش میدهد.
باید چیزی شبیه به تصویر زیر مشاهده نمایید:
تصویر(۱۹)
در اینجا، ۲۰۴۸۱ و ۱۹۹۰۹ به ترتیب شمارههای inode برای فایلهای file1_link و ۵۶.mp3 هستند.
نتیجهگیری
دستور ls در لینوکس یک ابزار ضروری برای نمایش فایلها و پوشهها است. در این مقاله، نحو (syntax)، گزینههای رایجی که استفاده می شوند و مثالهای گویا، مانند مرتبسازی فایلها، نمایش فایلهای مخفی و شناسایی لینکهای نمادین یا شمارههای inode بررسی شدند. همچنین میتوانید با گزینههای مختلف برای ایجاد خروجیهای اختصاصی آزمایش کنید، از ترکیب دستور ls با wildcard ها جهت فیلتر کردن انواع فایلهای خاص استفاده نمایید یا از اسکریپتهای Bash برای خودکارسازی وظایف بهره ببرید.