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
به اینگونه آدرسدهی، آدرسدهی نسبی گفته میشود. یعنی نسبت به فولدری که اکنون در آن قرار داریم آدرسهای بعدی را مینویسیم. توجه کنید که در ابتدای آدرس از علامت /
استفاده نکردیم.