بخش ۱۰ – نمایش مسیر فعلی با دستور 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بزنی.