رفتن به محتوا
مبانی کامپیوتر و اینترنتکامپیوتر از دروندرس ۶ از ۱۶

فایل، پوشه و مسیر

فایل و پوشه و درخت پوشه‌ها، مسیر مطلق و نسبی (. و .. و ~)، پسوند فایل فقط بخشی از اسم است، فایل پنهان، حساس بودن لینوکس به حروف بزرگ و کوچک، دیدن اطلاعات فایل با stat و ls، پیدا کردن فایل با find، و پشت پرده: چرا جابه‌جا کردن فایل فوری است ولی کپی زمان می‌برد.

  • حدود ۲۱ دقیقه مطالعه
  • ۷ مثال اجراشده
  • ۳ تمرین با جواب
  • مقدماتی (از صفر مطلق)
  • به‌روزرسانی: ۲۹ مهر ۱۴۰۵

توی این درس یاد می‌گیری فایل و پوشه دقیقاً چه هستند، چطور هر فایل در کامپیوتر یک آدرس (مسیر) دارد، و فرق مسیر مطلق و مسیر نسبی چیست. می‌بینی پسوند فایل (مثل .png) فقط بخشی از اسم است و محتوای فایل را عوض نمی‌کند، چرا بعضی فایل‌ها پنهان‌اند، و چرا در لینوکس Index.html و index.html دو فایل جدا هستند. همه‌ی این‌ها مستقل از سیستم‌عامل است و در تمام دوره‌های بعدی به آن نیاز داری.

همه‌ی ما دیده‌ایم که فایلی را دانلود کرده‌ایم و بعد پیدایش نکرده‌ایم. علتش تقریباً همیشه یکی است: نمی‌دانیم فایل در کدام پوشه است. کامپیوتر هم دقیقاً همین را می‌پرسد: «کدام فایل؟ در کدام پوشه؟». هر بار که برنامه‌ای فایلی را باز می‌کند، باید آدرس دقیق آن را بداند. این آدرس مسیر (path) نام دارد.

مسیر دقیقاً مثل آدرس پستی است. آدرس کامل: «ایران، تهران، خیابان ولیعصر، پلاک ۱۰». هر کس در هر جای دنیا باشد با همین آدرس خانه را پیدا می‌کند. به آن مسیر مطلق می‌گوییم. آدرس نسبی: «دو در بعد، سمت چپ». درست است، ولی فقط وقتی که بدانی کجا ایستاده‌ای. اگر از جای دیگری شروع کنی، به خانه‌ی دیگری می‌رسی. به آن مسیر نسبی می‌گوییم.

  • فایل (file): یک اسم + محتوا (بایت‌هایی که در دو درس قبل دیدی) + اطلاعات جانبی (اندازه، زمان آخرین تغییر، صاحب، دسترسی).
  • پوشه (folder یا directory): ظرفی که فایل‌ها و پوشه‌های دیگر را در خود دارد. پوشه‌ها داخل پوشه‌ها می‌روند، و همین یک درخت می‌سازد.
  • ریشه (root): بالاترین پوشه‌ی درخت، که همه‌چیز زیر آن است.
یک پروژه‌ی وب‌سایت. هر خط یک فایل یا پوشه است و تورفتگی نشان می‌دهد داخل کدام پوشه است. پوشه‌ی shop پوشه‌ی اصلی پروژه است و css و js و img زیرپوشه‌های آن‌اند. فایل .env پنهان است (اسمش با نقطه شروع می‌شود).
مسیر مطلق مسیر نسبی
از کجا شروع می‌شود از ریشه (/ در لینوکس و مک، C:\ در ویندوز) از پوشه‌ای که الان در آن هستی
مثال /home/ali/shop/css/style.css css/style.css یا ../js/app.js
همیشه یک معنی دارد؟ بله نه؛ بستگی به جایی دارد که هستی
کی استفاده کنم؟ تنظیمات و سرور و جایی که نباید اشتباه شود کار روزمره داخل یک پروژه

چند نماد در مسیرها:

نماد معنی
/ ریشه (اول مسیر)، یا جداکننده‌ی پوشه‌ها (وسط مسیر)
. همین پوشه‌ای که الان هستی
.. پوشه‌ی بالایی (والد)
~ پوشه‌ی خانه‌ی کاربر فعلی (در این درس /home/ali)
سه سیستم‌عامل، سه شکل نوشتن مسیر. در لینوکس و مک همه‌چیز زیر یک ریشه است و جداکننده / است. در ویندوز هر دیسک یک حرف دارد و جداکننده \ است. در لینوکس حروف بزرگ و کوچک فرق دارند، در ویندوز معمولاً نه.

دستورها روی یک کامپیوتر لینوکسی آزمایشی اجرا شده‌اند. اگر ویندوز داری، همین کارها را در File Explorer هم می‌بینی؛ ما فقط برای دقیق بودن از ترمینال استفاده می‌کنیم. هر دستور را توضیح می‌دهیم و لازم نیست حفظش کنی (در دوره‌ی لینوکس یاد می‌گیری).

مثال ۱: «الان کجا هستم؟» (pwd) و «چه چیزهایی اینجا هست؟» (ls)

Section titled “مثال ۱: «الان کجا هستم؟» (pwd) و «چه چیزهایی اینجا هست؟» (ls)”

دستور pwd (print working directory) مسیر مطلق پوشه‌ی فعلی را چاپ می‌کند، و ls (list) محتوای آن را. ترمینال همیشه «در یک پوشه» است و مسیرهای نسبی نسبت به همان حساب می‌شوند:

Terminal window
cd ~/shop
pwd
ls
خروجی
/home/ali/shop
css
docs
img
index.html
js
  • pwd گفت الان در /home/ali/shop هستیم، یعنی پوشه‌ی shop داخل ali داخل home داخل ریشه (/).
  • ls پنج چیز را نشان داد: چهار پوشه (css، docs، img، js) و یک فایل (index.html). از روی خود ls نمی‌فهمی کدام پوشه است؛ با ls -F علامت / کنار پوشه‌ها می‌آید، یا با tree که الان می‌بینی.
  • فایل .env را نشان نداد؛ علتش مثال ۵ است.

برای دیدن کل ساختار یک‌جا از tree استفاده می‌کنیم. -a یعنی فایل‌های پنهان را هم نشان بده:

Terminal window
cd ~/shop
tree -a
خروجی
.
├── .env
├── css
│   └── style.css
├── docs
│   └── readme.md
├── img
│   └── logo.png
├── index.html
└── js
└── app.js
5 directories, 6 files

tree همان نمودار درس را با خود ساختار واقعی نشان داد: shop پنج پوشه (با خود .، یعنی خود shop، و css، docs، img، js) و شش فایل دارد. هر شاخه یک زیرپوشه است. فایل .env فقط چون -a زدیم دیده شد.

مثال ۳: یک فایل، دو آدرس

Section titled “مثال ۳: یک فایل، دو آدرس”

فایل css/style.css را از دو جا آدرس می‌دهیم. با cat (concatenate) محتوای فایل را چاپ می‌کنیم:

Terminal window
echo "== absolute path (works from anywhere):"
cat /home/ali/shop/css/style.css
echo "== relative path from ~/shop:"
cd ~/shop
cat css/style.css
echo "== relative path from ~/shop/js (go up with .. first):"
cd ~/shop/js
pwd
cat ../css/style.css
echo "== the same relative path from another place fails:"
cd /tmp
cat css/style.css
خروجی
== absolute path (works from anywhere):
body { margin: 0 }
== relative path from ~/shop:
body { margin: 0 }
== relative path from ~/shop/js (go up with .. first):
/home/ali/shop/js
body { margin: 0 }
== the same relative path from another place fails:
cat: css/style.css: No such file or directory

همان فایل با سه نوشته‌ی متفاوت خوانده شد:

  • مسیر مطلق (/home/ali/shop/css/style.css) از هر جا جواب می‌دهد.
  • مسیر نسبی css/style.css از ~/shop درست بود، چون css آن‌جا زیرپوشه است.
  • از ~/shop/js باید اول یک پوشه بالا می‌رفتیم: ../css/style.css.
  • از /tmp همان css/style.css شکست خورد (No such file or directory): در /tmp پوشه‌ای به اسم css نیست. نتیجه: مسیر نسبی فقط از جای درست کار می‌کند.

مثال ۴: پسوند فقط بخشی از اسم است

Section titled “مثال ۴: پسوند فقط بخشی از اسم است”

پسوند (extension) یعنی بخش بعد از آخرین نقطه‌ی اسم (.png، .txt). برنامه‌ها اغلب از روی آن حدس می‌زنند فایل چیست، ولی محتوا را عوض نمی‌کند. فایل متنی را به اسم photo.png کپی می‌کنیم و از file می‌پرسیم واقعاً چیست:

Terminal window
cd ~/shop
cp index.html photo.png
cp img/logo.png notes.txt
file index.html photo.png img/logo.png notes.txt
خروجی
index.html: ASCII text, with no line terminators
photo.png: ASCII text, with no line terminators
img/logo.png: PNG image data, 1 x 1, 8-bit/color RGBA, non-interlaced
notes.txt: PNG image data, 1 x 1, 8-bit/color RGBA, non-interlaced

index.html و photo.png هر دو «ASCII text» هستند: اسمی که به فایل متنی دادیم محتوا را PNG نکرد. برعکسش هم درست است: logo.png یک تصویر PNG واقعی است و وقتی با اسم notes.txt کپی شد (مثال دوم)، file هنوز می‌گوید «PNG image data». خیلی از برنامه‌ها از پسوند حدس می‌زنند چه کنند (مثلاً با دوبار کلیک چه برنامه‌ای باز شود)، ولی محتوا واقعیت را می‌گوید. اگر پسوند را اشتباه بگذاری، برنامه یا فایل را باز نمی‌کند یا خطا می‌دهد.

در لینوکس و مک، فایلی که اسمش با نقطه شروع شود، به‌طور پیش‌فرض نمایش داده نمی‌شود. معمولاً تنظیمات برنامه‌ها آنجا هستند. با ls -a (all) همه را می‌بینی:

Terminal window
cd ~/shop
echo "== ls:"
ls
echo "== ls -a:"
ls -a
خروجی
== ls:
css
docs
img
index.html
js
notes.txt
photo.png
== ls -a:
.
..
.env
css
docs
img
index.html
js
notes.txt
photo.png

ls ساده .env را نشان نداد و ls -a نشان داد. دو ورودی عجیب هم دارد: . (خود این پوشه) و .. (پوشه‌ی بالاتر)؛ این دو در هر پوشه‌ای هستند و همان نمادهای مسیرند. چرا فایل‌های پنهان؟ چون معمولاً تنظیمات هستند (.env تنظیمات برنامه، .gitignore و .ssh و .bashrc را در دوره‌های بعدی می‌بینی) و برای کار روزمره مزاحم‌اند. «پنهان» محافظت نیست؛ فقط نمایش داده نمی‌شود.

مثال ۶: اطلاعات یک فایل (stat)

Section titled “مثال ۶: اطلاعات یک فایل (stat)”

هر فایل علاوه بر محتوا، اطلاعات جانبی هم دارد. stat با قالب دلخواه (-c) اسم، اندازه (به بایت) و زمان آخرین تغییر را نشان می‌دهد:

Terminal window
cd ~/shop
stat -c '%n %s bytes last changed: %y' index.html css/style.css .env
echo "== ls -la (long format, all files; we keep only size, date and name):"
ls -la --time-style=long-iso | awk 'NR > 1 {print $5, $6, $8}' | column -t
خروجی
index.html 13 bytes last changed: 2026-10-18 14:00:54.170516172 +0000
css/style.css 19 bytes last changed: 2026-10-18 14:00:54.170516172 +0000
.env 20 bytes last changed: 2026-10-18 14:00:54.172320717 +0000
== ls -la (long format, all files; we keep only size, date and name):
4096 2026-10-18 .
4096 2026-10-18 ..
20 2026-10-18 .env
4096 2026-10-18 css
4096 2026-10-18 docs
4096 2026-10-18 img
13 2026-10-18 index.html
4096 2026-10-18 js
70 2026-10-18 notes.txt
13 2026-10-18 photo.png

stat هر سه فایل را با اندازه‌ی دقیق (۱۳ و ۱۹ و ۲۰ بایت) و زمان تغییر نشان داد (از ثانیه تا نانوثانیه). ls -la (long format، همراه فایل‌های پنهان) همان اطلاعات را برای همه‌ی فایل‌ها در یک جدول می‌دهد؛ ما با awk فقط ستون‌های اندازه (پنجم)، تاریخ (ششم) و اسم (هشتم) را نگه داشتیم. (ستون‌های اول تا چهارم دسترسی و صاحب فایل‌اند که در دوره‌ی لینوکس یاد می‌گیری.) اندازه‌ی 4096 که برای پوشه‌ها می‌بینی، اندازه‌ی همان «جدول اسم‌ها» است که پوشه نگه می‌دارد (در بخش «پشت پرده» توضیح دادیم)، نه مجموع فایل‌های داخلش. اندازه همیشه بایت است، همان چیزی که در دو درس قبل یاد گرفتی: فایل index.html سیزده حرف انگلیسی دارد، پس سیزده بایت.

مثال ۷: پیدا کردن فایل (find)

Section titled “مثال ۷: پیدا کردن فایل (find)”

وقتی نمی‌دانی فایل کجاست، find در پوشه و زیرپوشه‌ها می‌گردد. -name الگوی اسم و -maxdepth حداکثر عمق جستجو:

Terminal window
cd ~/shop
echo "== all .css files below here:"
find . -name '*.css'
echo "== everything at most 1 level deep:"
find . -maxdepth 1 | sort
echo "== only folders:"
find . -type d | sort
خروجی
== all .css files below here:
./css/style.css
== everything at most 1 level deep:
.
./.env
./css
./docs
./img
./index.html
./js
./notes.txt
./photo.png
== only folders:
.
./css
./docs
./img
./js

find . از پوشه‌ی فعلی شروع می‌کند و همه‌چیز زیرش را می‌گردد. -name '*.css' یعنی «اسمش به .css ختم شود» (ستاره یعنی هر چیزی)، که فقط یک فایل را پیدا کرد. -maxdepth 1 فقط یک سطح (خود پوشه و فرزندان مستقیم) و -type d فقط پوشه‌ها. الگو را داخل کوتیشن بنویس، تا پوسته آن را قبل از find باز نکند.

پشت پرده: پوشه چیست و جابه‌جا کردن چرا فوری است؟

Section titled “پشت پرده: پوشه چیست و جابه‌جا کردن چرا فوری است؟”

در درس اول دیدی دیسک فقط بایت نگه می‌دارد. پس «پوشه» و «اسم فایل» کجا هستند؟ سیستم‌عامل برای هر فایل یک شماره‌ی شناسایی (inode) می‌سازد و محتوا و اطلاعات جانبی را به آن شماره وصل می‌کند. پوشه در واقع یک فایل ویژه است که فقط یک جدول نگه می‌دارد: «این اسم ← این شماره». یعنی اسم جزو خود فایل نیست؛ در پوشه‌ی والد نوشته شده.

از این‌جا یک نتیجه‌ی عملی می‌گیریم: تغییر اسم یا جابه‌جایی داخل یک دیسک فقط عوض کردن یک خط در جدول پوشه است و داده را لمس نمی‌کند؛ ولی کپی باید همه‌ی بایت‌ها را دوباره بنویسد و شماره‌ی جدید بگیرد. ls -i شماره را نشان می‌دهد:

Terminal window
cd ~/shop
echo "original : $(ls -i css/style.css)"
mv css/style.css css/main.css
echo "after mv : $(ls -i css/main.css)"
cp css/main.css css/copy.css
echo "after cp : $(ls -i css/main.css css/copy.css | tr '\n' ' ')"
mv css/main.css css/style.css; rm css/copy.css
خروجی
original : 870273 css/style.css
after mv : 870273 css/main.css
after cp : 870280 css/copy.css 870273 css/main.css

شماره‌ی inode فایل بعد از mv همان ماند (عدد اول و دوم یکی‌اند)، یعنی هیچ بایتی جابه‌جا نشد؛ فقط اسم در جدول پوشه از style.css به main.css تغییر کرد. بعد از cp یک شماره‌ی تازه پیدا شد (فایل copy.css شماره‌ی دیگری دارد)، یعنی یک فایل جدید با بایت‌های کپی‌شده. (خود شماره‌ها در سیستم تو فرق می‌کنند؛ مهم یکی بودن و فرق داشتن است.)

برای همین جابه‌جا کردن یک فایل ۱۰ گیگابایتی در همان دیسک آنی است ولی کپی‌اش دقایقی طول می‌کشد. (جابه‌جایی بین دو دیسک مثل کپی و حذف است، چون شماره‌ها فقط داخل یک دیسک معنی دارند.)

کامپیوتر فاصله را جداکننده‌ی «کلمه‌های دستور» می‌داند. اسمی که فاصله دارد باید داخل کوتیشن بیاید:

Terminal window
cd ~
mkdir "my docs"
cd my docs
خروجی
bash: cd: too many arguments

cd my docs به پوشه‌ی my و پوشه‌ی docs دستور داد (دو آرگومان) و cd فقط یکی می‌خواهد: too many arguments. راه‌حل: اسم را داخل کوتیشن بنویس (cd "my docs") یا بهتر: برای اسم فایل و پوشه از فاصله استفاده نکن (my-docs یا my_docs). همین فاصله‌ها در سرور و برنامه‌نویسی دردسرسازند.

۲) حروف بزرگ و کوچک در لینوکس

Section titled “۲) حروف بزرگ و کوچک در لینوکس”
Terminal window
cd ~/shop
ls Index.html
ls index.html
خروجی
ls: cannot access 'Index.html': No such file or directory
index.html

Index.html پیدا نشد و index.html پیدا شد. روی ویندوز و مک (در حالت پیش‌فرض) هر دو نوشته جواب می‌داد؛ برای همین سایت‌هایی که روی لپ‌تاپ درست کار می‌کنند، روی سرور لینوکس ممکن است ۴۰۴ بدهند. راه‌حل: همیشه اسم‌ها را یکدست و ترجیحاً با حروف کوچک بنویس.

۳) خواندن پوشه به‌جای فایل

Section titled “۳) خواندن پوشه به‌جای فایل”
Terminal window
cd ~/shop
cat css
خروجی
cat: css: Is a directory

cat برای خواندن فایل است و css یک پوشه است. برای دیدن محتوای پوشه از ls css استفاده کن.

۴) فرض کردن «پوشه‌ی فعلی همان است که فکر می‌کنم»

Section titled “۴) فرض کردن «پوشه‌ی فعلی همان است که فکر می‌کنم»”

مسیر نسبی بدون اینکه بدانی کجا هستی، اشتباه می‌شود (مثال ۳، آخرین دستور). پیش از هر کار با مسیر نسبی pwd بزن. راه‌حل کلی: وقتی مطمئن نیستی، مسیر مطلق بنویس.

تمرینآسان

مسیر مطلق فایل app.js و مسیر نسبی آن را از داخل پوشه‌ی css پیدا کن. با cat ثابت کن هر دو یک فایل را نشان می‌دهند.

دیدن جواب
Terminal window
cd ~/shop/css
echo "absolute: $(readlink -f ../js/app.js)"
echo "relative: ../js/app.js"
cat /home/ali/shop/js/app.js
cat ../js/app.js
خروجی
absolute: /home/ali/shop/js/app.js
relative: ../js/app.js
console.log("hi")
console.log("hi")

هر دو مسیر یک فایل را نشان دادند. readlink -f یک مسیر (حتی نسبی) را به مسیر مطلق کامل تبدیل می‌کند؛ ابزار خوبی برای وقتی که مطمئن نیستی فایل دقیقاً کجاست.

تمرینمتوسط

از ریشه‌ی سیستم (/) شروع کن و فقط با مسیر نسبی (بدون / در ابتدای مسیر) به /home/ali/shop/css برسی. بعد با .. از آنجا به /home/ali برگرد.

دیدن جواب
Terminal window
cd /
cd home/ali/shop/css
pwd
cd ../..
pwd
خروجی
/home/ali/shop/css
/home/ali

از / با cd home/ali/shop/css (بدون / ابتدایی، یعنی نسبی) به css رسیدیم؛ pwd همین را تأیید کرد. بعد cd ../.. دو پوشه بالا رفت: اولین .. از css به shop و دومی از shop به ali. پس به /home/ali رسیدیم. اگر یک .. بیشتر می‌زدی، به /home می‌رسیدی. شمردن ..‌ها آسان‌ترین جای اشتباه است؛ بعد از هر cd یک pwd بزن.

تمرینسخت

تمرین اصلی درس: یک اسکریپت بنویس که یک فهرست مسیر را از ورودی بخواند و ساختار را بسازد (مسیری که با / تمام می‌شود پوشه است، بقیه فایل). بعد با find و tree ثابت کن ساختار درست است.

دیدن جواب
mkproject.sh
#!/usr/bin/env bash
# usage: mkproject.sh ROOT < list-of-paths ; a path ending in / is a folder, anything else is a file
root=${1:?usage: mkproject.sh ROOT}
while read -r p; do
[ -z "$p" ] && continue
case "$p" in
*/) mkdir -p "$root/$p" ;;
*) mkdir -p "$root/$(dirname "$p")"; : > "$root/$p" ;;
esac
done
Terminal window
cat > layout.txt <<'EOF'
src/
src/main.py
src/utils/
src/utils/text.py
tests/test_main.py
README.md
.gitignore
EOF
bash mkproject.sh demo < layout.txt
tree -a demo
echo "files: $(find demo -type f | wc -l), folders (without root): $(find demo -mindepth 1 -type d | wc -l)"
rm -rf demo layout.txt mkproject.sh
خروجی
demo
├── .gitignore
├── README.md
├── src
│   ├── main.py
│   └── utils
│   └── text.py
└── tests
└── test_main.py
4 directories, 5 files
files: 5, folders (without root): 3

اسکریپت هر خط را خواند: خطی که با / تمام می‌شد پوشه شد (mkdir -p)، بقیه فایل (اول پوشه‌ی والدش را ساخت، بعد با : > یک فایل خالی). tree پنج فایل و سه زیرپوشه را نشان داد؛ find همان را شمرد (۵ فایل و ۳ پوشه، بدون خود demo). دقت کن .gitignore که پنهان است، فقط با tree -a دیده شد. (-p در mkdir یعنی «اگر پوشه‌های والد نیستند، آن‌ها را هم بساز» و اگر هست خطا نده.)

⚡ بررسی سریع

در پوشه‌ی /home/ali/shop/css هستی. مسیر نسبی ../js/app.js به کدام فایل اشاره می‌کند؟

آزمونک
  1. فرق مسیر مطلق و مسیر نسبی چیست؟

  2. فایلی به اسم report.pdf در واقع یک فایل متنی ساده است. کدام درست است؟

  3. در پوشه‌ی ~/shop دستور ls فایل .env را نشان نمی‌دهد ولی ls -a نشان می‌دهد. چرا؟

  4. روی لینوکس فایل index.html داری. دستور cat Index.html چه می‌شود؟

  5. چرا جابه‌جا کردن (mv) یک فایل بزرگ داخل همان دیسک آنی است ولی کپی (cp) زمان می‌برد؟

  • فایل = اسم + محتوا (بایت) + اطلاعات جانبی. پوشه ظرفی است که جدول «اسم ← فایل» دارد و همه‌ی پوشه‌ها یک درخت از ریشه می‌سازند.
  • مسیر مطلق از ریشه شروع می‌شود (/home/ali/shop/css/style.css) و همیشه یک معنی دارد؛ مسیر نسبی از پوشه‌ی فعلی (css/style.css، ../js/app.js). . یعنی همین‌جا، .. یعنی بالاتر، ~ یعنی خانه.
  • پسوند فقط بخشی از اسم است. برای فهمیدن نوع واقعی از file استفاده کن.
  • اسم‌هایی که با نقطه شروع شوند پنهاناند (ls -a نشان می‌دهد).
  • لینوکس به حروف بزرگ و کوچک حساس است؛ ویندوز معمولاً نه. اسم فایل را همیشه یکدست (ترجیحاً کوچک) بنویس.
  • اسم فاصله نداشته باشد (یا داخل کوتیشن باشد).
  • mv داخل یک دیسک فوری است (فقط جدول پوشه)، cp همه‌ی بایت‌ها را می‌نویسد.
برگه‌ی تقلب این درس
دستورکاری که می‌کند
pwdمسیر مطلق پوشه‌ی فعلی
lsمحتوای پوشه‌ی فعلی
ls -aهمراه فایل‌های پنهان
tree -aدرخت پوشه‌ها با فایل‌های پنهان
cd ../jsرفتن به پوشه‌ی js کنار پوشه‌ی فعلی
cat pathچاپ محتوای یک فایل متنی
file pathنوع واقعی فایل (از روی محتوا)
stat pathاندازه و زمان و اطلاعات فایل
find . -name '*.css'پیدا کردن فایل با اسم
ls -i pathشماره‌ی inode فایل