بخش ۱۱ – تغییر دایرکتوری در لینوکس با دستور cd
۱. مقدمه: چرا دستور cd
اینقدر مهم است؟
در دنیای لینوکس، خط فرمان (Terminal) همانند یک نقشه از شهر بزرگ فایلها و پوشههاست.
دستور cd
(مخفف Change Directory) ابزاری است برای حرکت در این شهر.
میتوانی تصور کنی که هر پوشه مثل یک خیابان فرعی یا یک محله جدید است. برای رفتن از یک محل به محل دیگر، باید آدرس بدهی و با cd
حرکت کنی.
اگر pwd
به تو میگوید «الان کجایی»، cd
است که تو را به جای جدید میبرد.
۲. ساختار کلی دستور cd
فرم کلی:
cd [مسیر]
[مسیر]
میتواند مطلق یا نسبی باشد (همانطور که در بخش ۹ یاد گرفتیم).- اگر
[مسیر]
خالی باشد،cd
شما را به دایرکتوری خانگی میبرد.
۳. کار با مسیر مطلق در cd
مسیر مطلق همیشه از /
شروع میشود:
cd /etc
pwd
# /etc
در این حالت، مهم نیست الان کجا باشید، چون آدرس کامل را دادهاید.
۴. کار با مسیر نسبی در cd
مسیر نسبی نسبت به مکان فعلی شما محاسبه میشود:
pwd
# /home/ali
cd Documents
pwd
# /home/ali/Documents
نکته: مسیر نسبی هیچوقت با /
شروع نمیشود.
۵. کاراکترهای مهم در cd
نماد | معنی | مثال | توضیح |
---|---|---|---|
. | دایرکتوری فعلی | cd . | در واقع جابهجایی خاصی نمیکند |
.. | یک سطح بالاتر | cd .. | از /home/ali به /home میبرد |
~ | دایرکتوری خانگی | cd ~ | همیشه به /home/username میرود |
- | دایرکتوری قبلی | cd - | بین دو پوشه آخر سوئیچ میکند |
مثال با cd -
cd /etc
pwd
# /etc
cd /var/log
pwd
# /var/log
cd -
# /etc
cd -
# /var/log
این روش برای جابهجایی سریع بین دو مسیر مفید است.
۶. تغییر به مسیر خانگی (Home Directory)
سه روش:
- ساده:
cd
- با تیلدا:
cd ~
- با مسیر مطلق:
cd /home/$USER
۷. رفتن به مسیر با فاصله (Spaces in Path)
اگر مسیری فاصله دارد، باید آن را داخل کوتیشن بگذاری یا فاصله را Escape کنی:
روش کوتیشن:
cd "My Documents"
روش Escape:
cd My\ Documents
۸. خطاهای رایج با cd
۸.۱. مسیر اشتباه
cd /not/exist
# bash: cd: /not/exist: No such file or directory
راه حل: با ls
مسیر را چک کن یا با Tab Completion مسیر را کامل کن.
۸.۲. دسترسی نداشتن
اگر به پوشهای خواندن/اجرا (x) نداشته باشی:
cd /root
# bash: cd: /root: Permission denied
راه حل: یا با کاربر Root وارد شو (sudo -i
) یا اجازهها را بررسی/تغییر بده.
۹. ترفندهای حرفهای با cd
۹.۱. استفاده از متغیرهای محیطی
تمام مسیرهای مشخص مثل /home/user
را میتوانی ذخیره و استفاده کنی:
MYDIR=/var/www/html
cd $MYDIR
۹.۲. رفتن به چند مسیر پایدار
اگر مدام بین چند پوشه جابهجا میشوی، میتوانی Alias بسازی:
alias cdoc='cd ~/Documents'
alias cwww='cd /var/www/html'
و بعد فقط بگو:
cdoc
۱۰. کاربرد cd
در اسکریپتها
در Bash Script تغییر مسیر فقط داخل همان اسکریپت اثر دارد.
مثال:
#!/bin/bash
cd /tmp
echo "Now in: $(pwd)"
این باعث میشود اجرای بقیه دستورات در همان مسیر باشد.
۱۱. نمونه سناریوهای واقعی
سناریو ۱: بکاپ گرفتن
cd /var/www/html
tar -czf ~/backup.tar.gz .
سناریو ۲: کار با پروژه
cd ~/projects/myapp
git status
سناریو ۳: انتقال سریع بین دو دایرکتوری
cd /etc
cd /home/user/projects
cd -
cd -
۱۲. تمرینهای عملی
- حرکت بین مسیرها
cd /
cd /var/log
cd ~
cd /etc
cd -
- استفاده از
..
cd /usr/local/bin
cd ..
pwd
- آدرس با فاصله
mkdir ~/My\ Test\ Folder
cd ~/My\ Test\ Folder
- ذخیره مسیر در متغیر
MYWORK=~/projects
cd $MYWORK
۱۳. نکات ایمنی و بهینهکاری
- همیشه قبل از اجرای دستور حساس (
rm -r
,mv
) → باpwd
مطمئن شو مسیر درست است. - از Tab Completion برای نوشتن مسیر استفاده کن تا اشتباه تایپی نداشته باشی.
- به خاطر بسپار که
cd
فقط به دایرکتوری میرود، نه به فایل.
۱۴. جمعبندی
cd
= Change Directory.- میتواند با مسیر مطلق، نسبی یا نمادهای خاص (
.
,..
,~
,-
) کار کند. - برای پوشههایی با نام دارای فاصله باید از کوتیشن یا
\
استفاده شود. - با
cd -
میتوان بین دو مسیر آخر جابجا شد. - ترفندها: alias برای مسیرهای پر استفاده، ذخیره مسیر در متغیر، استفاده در اسکریپتها.