cd - پیمایش میان فولدرها

cd مخفف عبارت Change Directory به معنای تعویض دایرکتوری جاری (یا تعویض دایرکتوری کاری) می‌باشد.

دستور cd جزء دستوراتی است که با دستور man نمی‌توان به راهنمای آن دست یافت.

حالت کلی دستور به صورت زیر است:

$ cd [-L or -P] [dir]

پارامترهای P-و L-در رفتار ظاهری دستور تاثیری نداشته و یک سری از متغیر های محیطی را تغییر می‌دهند که توضیح آن‌ها از حوصله این بحث خارج است.

dir: آدرس فولدری که قرار است وارد آن شویم.

مثال: دستور زیر از فولدر جاری، وارد فولدر دسکتاپ می‌شود

cd /home/majid/Desktop

نکات مهم در رابطه با دستور cd:

  • علامت ~به عنوان نمادی برای فولدر home  کاربر استفاده می‌شود. مثلا اسم کاربر فعلی majid است. پس فولدر home برای این کاربر آدرس /home/majid/ می‌باشد. می‌توان به جای نوشتن کل این آدرس از این علامت استفاده کرد.
majid@Majid-PC:~/Desktop/NewFolder$ cd ~
majid@Majid-PC:~$
  • برای رفتن به فولدر بالادستِ فولدر جاری از دو عدد کاراکتر نقطه استفاده می‌کنیم.
majid@Majid-PC:~/Desktop/NewFolder$ cd ..
majid@Majid-PC:~/Desktop$
  • می‌توان از دو نقطه به تعداد مورد نیاز استفاده کرد. در این مثال فرض کنید در فولدر home این کاربر، فولدری به نام Downloads وجود دارد. می‌توان به صورت مستقیم از آدرس بالایی به این آدرس رفت:
majid@Majid-PC:~/Desktop/NewFolder$ cd ../../Downloads
majid@Majid-PC:~/Downloads$

یا می‌توان چند بار از دستور cd استفاده کرد:

majid@Majid-PC:~/Desktop/NewFolder$ cd ..
majid@Majid-PC:~/Desktop$
majid@Majid-PC:~/Desktop$ cd ..
majid@Majid-PC:~$
majid@Majid-PC:~$ cd Downloads
majid@Majid-PC:~/Downloads$
  • اگر جلوی دستور cd آدرسی وارد نکنیم، وارد فولدر home  کاربر می‌شود. (مانند استفاده از علامت ~)
  • اگر در فولدر جاری مثلا فولدری به نام MyFolder داریم، نباید قبل از اسم آن از /استفاده کرد. چون قرار دادن /در ابتدای آدرس به معنای مطلق بودن آن است. (قرار دادن /در انتهای اسم فولدر یا به طور کلی قرار ندادن آن مشکلی ایجاد نمی‌کند)
majid@Majid-PC:~$ cd /MyFolder
bash: cd: /MyFolder: No such file or directory

majid@Majid-PC:~$ cd MyFolder/
majid@Majid-PC:~/MyFolder$

majid@Majid-PC:~$ cd MyFolder
majid@Majid-PC:~/MyFolder$

نکاتی در مورد آدرس‌ها در لینوکس:

ساختار فولدرها در لینوکس به صورت یک درخت است که فولدر ریشه ابتدای آن است و آدرس آن /است. مثلا فرض کنید در ویندوز همه فایل‌ها و فولدرها در درون یک پارتیشن (مثلا C) قرار داشته باشند.

  /
        /bin
        /dev
        /home
                /home/majid
                /home/ali
                /home/matrix
        /usr

حال برای این‌که به فولدر ali دسترسی داشته باشیم از دستور زیر استفاده میکنیم

ali@cli-pc:/$ cd /home/ali

علامت /در اول آدرس به معنای شروع آدرس از فولدر روت است (مثل قرار دادن \:Cدر ویندوز).

به این‌گونه آدرس‌ها، آدرس‌های مطلق گفته می‌شود. یعنی برای آدرس‌دهی از اولین فولدر شروع به نوشتن نام فولدرها می‌کنیم.

حال فرض کنید درون فولدر ali فولدری به نام Desktop وجود دارد. بعد از زدن دستور بالا می‌توان با دستور زیر به آن آدرس رفت.

ali@cli-pc:/~$ cd Desktop

به اینگونه آدرس‌دهی، آدرس‌دهی نسبی گفته می‌شود. یعنی نسبت به فولدری که اکنون در آن قرار داریم آدرس‌های بعدی را می‌نویسیم. توجه کنید که در ابتدای آدرس از علامت /استفاده نکردیم.