تبلیغات

آموزش و راهنمای دستور cd در لینوکس

خلاصه
رفتن به یک دایرکتوری دیگر (تغییر دایرکتوری یا مسیر)

دستور cd، یکی از پایه‌ای‌ترین دستورات لینوکس و شکل خلاصه شده یا مخفف عبارت Change Direcotory، به معنی تغییر دایرکتوری است؛ مثلا فرض کنید در مسیر زیر قرار دارید:

حالا برای رفتن به مسیری مثل /etc (یعنی یک پوشه قبل‌تر) و یا کلا هر مسیر دیگری، می‌توان از دستور cd استفاده کرد.

چند نکته مهم

  • پایه‌ای ترین مسیر لینوکس، root یا ریشه است که شامل دایرکتوری‌هایی مثل etc, home و … می‌باشد.
  • دایرکتوری home، که به آن دایرکتوری login نیز گفته می‌شود؛ در همان ابتدای مسیر روت قرار دارد و مخزنی برای فایل‌های شخصی کاربر وارد شده به سیستم است.

سینتکس cd

شکل کلی استفاده از این دستور، بصورت زیر است:

آپشن‌ها اختیاری هستند و مهم‌تر از همه، dir یا مسیری است که باید بنویسیم.

دو حالت اساسی برای مسیردهی وجود دارد.
در حالت اول، ابتدای هر مسیر، یک فوروارد اسلش (/) قرار می‌گیرد؛ اما در حالت دوم، فوروارد اسلشی وجود ندارد. درصورتی که ابتدای مسیر این علامت را قرار دهید، به این معناست که مسیردهی شما، قرار است از روت (root یا مسیر پایه) حساب شود. اما اگر مسیردهی را بدون این علامت بنویسید، یعنی مسیردهی شما، قرار است از مسیر فعلی حساب شود! این موضوع را در مثال‌ها خواهیم دید.

مثال 1: رفتن به مسیر پایه (روت)

دستور زیر را بنویسید:

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

مثال 2: رفتن به مسیر دلخواه

دستور زیر را بنویسید:

شما وارد پوشه etc که در ریشه قرار دارد خواهید شد. حالا دستور زیر را بنویسید:

شما وارد پوشه etc و سپس apt خواهید شد! اما اجازه دهید حالا که در مسیر /etc/apt قرار دارید، دستور زیر را بنویسید:

با پیام bash: cd: etc: No such file or directory رو برو خواهید شد! بدین معنا که چنین فایل یا دایرکتوری‌ای پیدا نشد! چرا؟! 😐
پاسخ ساده است! گفتیم که اگر فوروارد اسلش در ابتدای مسیر قرار گیرد، این مسیر از روت حساب می‌شود؛ اما در دستور اخیر، فوروارد اسلشی قرار نگرفته و همچنین این دستور، در مسیر /etc/apt اجرا شد. در واقع پس از اجرای دستور بالا، لینوکس به‌دنبال دایرکتوری etc در مسیر /etc/apt می‌گردد تا وارد آن شده و مسیر فعلی به مسیر /etc/apt/etc تغییر کند. اما از آنجایی که چنین دایرکتوری وجود ندارد، خطا صادر می‌شود.

مثال 3: رفتن به home

در حالت عادی، می‌توان با اجرای دستور زیر، به دایرکتوری home رفت:

و یا اگر در خود روت قرار دارید، می‌توانید فوروارد اسلش را برداشته و بصورت زیر بنویسید:

اما لینوکس راه‌حل ساده‌تری برای رفتن به home در اختیارمان قرار داده است! و آن این است که دستور cd را بصورت ساده بنویسیم:

و یا می‌توان بصورت زیر نوشت:

در واقع ~ به مسیر home اشاره دارد و از آن می‌توان در ابتدای مسیردهی‌ها استفاده کرده و بقیه مسیر home را نوشت. مثلا اگر بخواهید به دسکتاپ بروید:

مثال 3: بازگشت به دایرکتوری قبلی

فرض کنید در همان مسیر /etc/apt قرار دارید. حالا اگر بخواهید به دایرکتوری قبل برگردید چه باید کرد؟! بصورت زیر؟!

اما اگر در مسیر طوالانی‌تری قرار داشته باشید؟! 😐 بنابراین نیاز به یک راه‌حل دیگری احساس می‌شود. پس بجای دستور بالا بنویسید:

حالا فرض کنید در مسیری مثل /fullkade/test1/test2 قرار دارید. اگر بخواهید به fullkade برگردید باید به چه روشی عمل کرد؟! بصورت زیر؟!

یعنی باید دوباره این دستور را اجرا کنیم؟! 😐 نه نیازی نیست 🙂
به سادگی می‌توان بصورت زیر نوشت:

بنابراین می‌توان گفت، اگر در مسیردهی، از .. (دو نقطه پشت سر هم) استفاده شود، بدین معناست که از دایرکتوری فعلی به قبل حساب شود (یعنی یک دایرکتوری به قبل)! برای درک این گفته، اجازه دهید مثال دیگری بزنیم.

مثال 4: مسیردهی بازگشتی و ادامش

البته این اسم رو خودم گذاشتم 😀 اما بگذریم 🙂

فرض کنید در مسیری مثل /fullkade/test1/test2 قرار دارید. حالا اگر بخواهید به /fullkade/test1 برگشته و سپس به /fullkade/test1/test3 بروید، باید به چه صورت عمل کرد؟! بصورت زیر؟!

نه نیازی نیست! می‌توان آن را بصورت زیر نوشت:

این یعنی اینکه ابتدا به عقب برگرد، سپس به test3 برو! به همین سادگی! 🙂

شوخی: اگر در همان مسیر /fullkade/test1/test2، دستور زیر را بنویسید:

یعنی ابتدا به عقب برگرد و سپس به خودت برگرد 😀 (البته که چنین دستوری بی‌فایده است؛ چون عملا در ظاهر هیچ تغییر مسیری رخ نمی‌دهد)

مثال 5: رو به جلو

گفته شد که از .. برای بازگشت به عقب استفاده می‌شود! یعنی یک دایرکتوری به قبل! اما اگر برفرض در مسیر /fullkade/test1/test3 قرار داشته باشید و سپس به مسیر دیگری بروید، ولی منصرف شوید، یعنی اینکه بخواهید به همان /fullkade/test1/test3 برگردید، بایستی بصورت زیر عمل کرد:

این اتفاق چیزی شبیه به Undo است! اگر بخواهید آن را بیش از یک بار تکرار کنید، نیازی به نوشتن مجدد نیست و می‌توان خط تیره‌ها را پشت سر هم قرار داد. بصورت زیر:

مثال 6: دایرکتوری با فاصله!

اگر مسیری که استفاده می‌کنید شامل یک نامی باشد که دارای فاصله است! مثلا مسیر زیر:

حالا برای رفتن به آن باید چه کاری انجام داد؟! در واقع فقط کافیست که مسیر را بین دو علامت و یا بنویسید. بصورت زیر:

همچنین می‌توان فاصله‌ها را با یک \ (بک اسلش) رد و یا به عبارتی Escape کرد. بصورت زیر:

تبلیغات
0
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه