بخش ۱۰ – نمایش مسیر فعلی با دستور pwd در لینوکس
۱. مقدمه: چرا دانستن «من کجا هستم؟» مهم است
وقتی در محیط خط فرمان لینوکس کار میکنی، شبیه این است که در یک شهر بزرگ بینهایت طبقهدار راه میروی.
هر «طبقه» یا «آدرس» در این شهر، یک دایرکتوری (پوشه) است و تو میتوانی از یکی به دیگری بروی.
مشکل چیست؟
اگر حواست نباشد، ممکن است در یک آدرس دیگر باشی و دستوراتی بزنی که به جای پوشه درست، پوشه اشتباهی را تغییر دهند یا حتی فایلهای سیستمی را پاک کنند.
به همین دلیل، قبل از انجام کارهای حساس، باید از خودت بپرسی:
«الان دقیقاً کجا هستم؟»
این همان کاری است که دستور pwd
انجام میدهد.
۲. pwd
یعنی چه؟
pwd
مخفف Print Working Directory است:
- Print = چاپ (نمایش روی صفحه)
- Working Directory = دایرکتوری جاری (مسیر فعلی)
پس وظیفهاش این است که مسیر کامل مکانی که الان در آن هستی را در خروجی چاپ کند.
۳. نحو کلی استفاده
سادهترین حالت:
pwd
و خروجی:
/home/ali/Documents
این یعنی الان دایرکتوری کاری شما /home/ali/Documents
است.
۴. ارتباط pwd
با مسیر مطلق و نسبی
در بخش قبلی یاد گرفتیم که مسیر مطلق همیشه از ریشه /
شروع میشود.
خروجی pwd
همیشه یک مسیر مطلق است، حتی اگر با مسیر نسبی حرکت کرده باشی.
مثال:
cd /home/ali
cd Documents
pwd
خروجی:
/home/ali/Documents
حتی اگر Documents
رو نسبی نوشته بودی، pwd
مسیر کامل رو نشون میده.
۵. گزینهها (Options) در pwd
دستور pwd
خیلی ساده است، ولی دو گزینه مهم دارد:
۵.۱. -L
(logical)
این گزینه مسیر را همانطور که وارد کردهای نشان میدهد، حتی اگر از لینکهای سمبولیک استفاده کرده باشی.
pwd -L
(این معمولاً رفتار پیشفرض pwd
است.)
۵.۲. -P
(physical)
این گزینه لینکهای سمبولیک را دنبال کرده و مسیر واقعی را نشان میدهد.
فرض کن /shortcut
یک لینک به /home/ali/Documents
باشد:
cd /shortcut
pwd -L # نشان میدهد: /shortcut
pwd -P # نشان میدهد: /home/ali/Documents
این موقعها برای پیدا کردن مسیر واقعی فایلها روی سرور یا دیسک شبکهای مفید است.
۶. مثال واقعی از اهمیت pwd
تصور کن مدیر سیستم هستی و میخواهی یک پوشه موقتی را حذف کنی:
rm -rf test
خیالت راحت است که الان در /tmp
هستی… ولی اشتباهی در /
ماندهای.
با یک pwd
ساده میتوانستی ببینی:
/
و بفهمی داری جای اشتباهی این دستور خطرناک را میزنی.
۷. ترکیب pwd
با دیگر ابزارها
pwd
فقط برای نمایش نیست، میتوانی خروجیاش را در دستورات دیگر استفاده کنی.
۷.۱. ذخیره مسیر در متغیر
MYDIR=$(pwd)
echo "I am in $MYDIR"
۷.۲. استفاده در کپی یا بکاپ
cp /etc/hosts $(pwd)
این فایل را در مسیر فعلی کپی میکند.
۸. pwd
در اسکریپتها
در اسکریپتنویسی Bash، دو چیز مهم است:
- دایرکتوری کاری جاری → با
pwd
میگیری. - مسیر خود اسکریپت → با ترفند زیر میگیری:
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
این باعث میشود حتی اگر اسکریپت را از مسیر دیگری اجرا کردی، باز هم بدانی کنار خودش چه فایلهایی دارد.
۹. نکات حرفهای و ایمنی با pwd
- قبل از اجرای هر دستور حذف (
rm -r
) →pwd
بزن. - وقتی در مسیرهای پیچیده مثل
/mnt/server1/data/shared/projects
هستی، باpwd
مطمئن شو هنوز در محل درست کار میکنی. - در مسیرهای لینک سمبولیک، از
pwd -P
برای رسیدن به مسیر واقعی استفاده کن.
۱۰. تمرینهای عملی
تمرین ۱ – گرفتن مسیر فعلی
- چند بار با
cd
بین پوشهها برو. - در هر مرحله
pwd
بزن و مسیر رو ببین.
تمرین ۲ – کار با لینکهای سمبولیک
- بساز:
ln -s /etc /tmp/etc_link
- برو:
cd /tmp/etc_link
- بزن:
pwd -L
pwd -P
تا تفاوت رو ببینی.
تمرین ۳ – ذخیره مسیر در متغیر
CURRENT_PATH=$(pwd)
echo "We are in $CURRENT_PATH"
۱۱. جمعبندی
pwd
مخفف Print Working Directory است.- همیشه مسیر مطلق محل فعلی شما را چاپ میکند.
- دو گزینه مهم دارد:
-L
مسیر منطقی (با لینکها)-P
مسیر واقعی (بدون لینک)- در کار روزمره و مخصوصاً در اسکریپتها کاربرد زیادی دارد.
- یاد بگیر قبل از کارهای خطرناک همیشه یک
pwd
بزنی.