دایرکتوری خود، یک فایل است که میتواند فایل های مختلفی را با اطلاعاتشان در خود نگه دارد. همه فایل ها اعم از فایل های معمولی، فایل های اختصاصی و دایرکتوری ها در دایرکتوری نگه داشته می شوند. لینوکس از یک ساختار سلسله مراتبی برای سازماندهی دایرکتوری ها استفاده میکند. این ساختار به ساختار درختی نیز مشهور است. این درخت یک گره ریشه و اصلی دارد که با / نمایش داده میشود. همه دایرکتوری ها و فایلها زیرمجموعه همین گره هستند.
دایرکتوری home
وقتی که شما به سیستم لینوکس خود لاگین میکنید در این دایرکتوری وجود دارید. هر کاربر دایرکتوری home مخصوص به خود را دارد. شما بیشتر کارهای خود را در همین دایرکتوری انجام خواهید داد. شما میتوانید با زدن دستور زیر وارد دایرکتوری home خود بشوید:
1 |
blog@Arshatech~:$ cd ~ |
علامت ~ نشان دهنده دایرکتوری خانه کاربری می باشد که در آن لاگین هستید. شما میتوانید بعد از این علامت ادامه مسیر خود را مشخص کنید:
1 2 |
blog@Arshatech:~$ cd ~/Documents/ blog@Arshatech:~/Documents$ |
شما بوسیله دستور زیر در لینوکس میتوانید به آخرین دایرکتوری که در آن حضور داشتید بازگردید:
1 |
blog@Arshatech:~$ cd - |
مسیرهای Absolute و Relative
همانطور که گفته شد بالاترین حد در سیستم های مبتنی بر یونیکس یا لینوکس نود ریشه یا root می باشد که با علامت / نشان داده می شود. هر المان نیز با همین علامت / متمایز میشود.
Absolute Path ها مسیرهایی هستند که از نود ریشه آدرس دهی میشوند:
1 2 3 |
/etc/passwd /users/alex/chem/notes /dev/rdsk/0s3 |
Reletive Path ها نیز در اصل مسیردهی از دایرکتوری ای هستند که شما در آن حضور دارید:
1 2 3 |
alex/notes ../etc/cron.d ../../dev |
دستوری به نام pwd وجود دارد که absolute path را برای مسیری که در آن حضور دارید نشان میدهد:
1 2 |
blog@Arshatech:~$ pwd /home/user/alex |
لیست کردن دایرکتوری ها
برای لیست کردن دایرکتوری ها در لینوکس شما از دستور ls باید استفاده کنید. که قاعده آن به صورت زیر است:
1 |
blog@Arshatech:~$ ls dirname |
شما میتوانید برای دیدن محتویات یک دایرکتوری که ممکن است شامل فایل یا دایرکتوری های دیگری باشد به صورت زیر عمل نمائید:
1 2 3 4 |
blog@Arshatech:~$ ls /usr/local X11 bin gimp jikes sbin ace doc include lib share atalk etc info man ami |
ایجاد دایرکتوری
شما میتوانید یک دایرکتوری را با دستور زیر ایجاد کنید که میتواند به صورت absolute یا relative باشد.
1 2 |
blog@Arshatech:~$ mkdir dirname blog@Arshatech:~$ mkdir /tmp/test-dir |
البته شما میتوانید با یک دستور چندین دایرکتوری نیز ایجاد کنید:
1 2 |
blog@Arshatech:~$ mkdir docs pub blog@Arshatech:~$ mkdir /tmp/test-dir /home/user/test-dir2 |
ایجاد دایرکتوری پدر
گاهی ممکن است نیاز باشد تا شما دایرکتوری های تو در تو ایجاد کنید. برای این کار اگر به صورت قبل عمل کنید خطا دریافت خواهید کرد. فرض کنید شما میخواهید درون یک دایرکتوری یک دایرکتوری دیگر و درون آن دایرکتوری دیگری ایجاد کنید اما چون دایرکتوری پدر وجود ندارد خطا به صورت زیر خواهید داشت:
1 2 3 |
blog@Arshatech:~$ mkdir /tmp/dirname/test mkdir: Failed to make directory "/tmp/dirname/test"; No such file or directory |
برای این کار شما میبایست از سوئیچ p- استفاده کنید:
1 |
blog@Arshatech:~$ mkdir -p /tmp/dirname/test |
حذف دایرکتوری
برای این کار شما میتوانید از دستور rmdir استفاده کنید. که قاعده آن به شکل زیر می باشد:
1 |
blog@Arshatech:~$ rmdir dirname |
البته شما میتوانید طبق روال دستورهای لینوکس چند دایرکتوری را به شکل زیر حذف نمائید:
1 |
blog@Arshatech:~$ rmdir dirname1 dirname2 dirname3 |
تغییر مسیر به دایرکتوری های مختلف
شما برای اینکه بتونید از یک دایرکتوری به دایرکتوری دیگه برید باید از دستوری به نام cd استفاده کنید. قاعده استفاده از این دستور به صورت زیر می باشد:
1 |
blog@Arshatech:~$ cd dirname |
حالا برای رفتن به یک دایرکتوری خاص از روش absolute میتونید به صورت زیر عمل کنید و با دستور pwd مطمان بشید که به مسیر درست هدایت شدید:
1 2 3 |
blog@Arshatech:~$ cd /usr/local/bin blog@Arshatech:~$ pwd /usr/local/bin |
همچنین شما میتونید از طریق مسیردهی reletive هم به دایرکتوری مورد نظر خودتون برید. مثلا اگر در حال حاضر شما در دایرکتوری etc/ هستید به صورت زیر عمل کنید:
1 2 3 4 5 |
blog@Arshatech:/etc/cron.d$ pwd /etc/cron.d blog@Arshatech:~$ cd ../../usr/local/bin blog@Arshatech:/usr/local/bin$ pwd /usr/local/bin |
حالا با فرض اینکه در دایرکتوری usr/local/bin/ هستیم و میخوایم به دایرکتوری یوزر خودمون بریم. به روش های زیر میشه عمل کرد:
1 2 3 4 5 6 7 8 |
blog@Arshatech:/usr/local/bin$ cd /home/user/ # روش اول blog@Arshatech:/usr/local/bin$ cd ../../../home/user/ # روش دوم blog@Arshatech:/usr/local/bin$ cd ~ # روش سوم در صورتی که با حساب کاربری خودمون در حال زدن دستور باشیم blog@Arshatech:~$ pwd # و در نهایت خروجی همه یکیست /home/user |
تغییر نام دایرکتوری
برای اینکه بتونید نام دایرکتروی رو به نام دلخواه خودتون تغییر بدید میتوید از دستور mv استفاده کنید(در صورتیکه dir2 وجود نداشته باشد):
1 |
blog@Arshatech:~$ mv dir1 dir2 |
انتقال دایرکتوری
انتقال دایرکتوری در لینوکس با تغییر نام یک دایرکتوری به یک شکل عمل میکنند به این شکل که اگر dir2 وجود داشته باشه به جای تغییر نام عمل انتقال فایل اتفاق میفته.
دایرکتوری های نقطه (.) و نقطه نقطه (..)
دایرکتوری نقطه یا . بیانگر دایرکتوری حال حاضر شما و دایرکتوری نقطه نقطه یا .. بیانگر دایرکتوری یک سطح بالاتر از دایرکتوری حاضر شما می باشد.