آیا در مورد استفاده از عبارات مسیر نسبی یا مطلق در پروژه بعدی خود سردرگم هستید؟ با یادگیری تفاوت بین این دو شروع کنید.
نام مسیرهای مطلق و نسبی دو روش برای تعیین آدرس مجازی دایرکتوری یا فایل در لینوکس هستند. اما تفاوت این دو نوع مسیر چیست و شما باید از کدام یک در دستورات خود استفاده کنید؟ بیایید دریابیم.
مسیرهای نسبی و مطلق در لینوکس
اگر تا به حال از هر دستور لینوکس مبتنی بر آرگومان مانند cd یا ls استفاده کرده اید، می دانید که راه های مختلفی برای تعیین مسیر یک فهرست یا فایل وجود دارد.
ممکن است ترجیح دهید به عبارات مسیر عادی پایبند باشید یا اگر کاربر پیشرفته لینوکس هستید، از عبارات منظم پیچیده برای ارسال نام فایل یا دایرکتوری به یک برنامه استفاده کنید. در هر صورت، تنها دو راه برای تعیین مسیر دایرکتوری در لینوکس وجود دارد: مسیر مطلق و مسیر نسبی.
عبارات مسیر مطلق
یک مسیر مطلق همیشه از دایرکتوری ریشه شروع می شود و به دایرکتوری یا فایلی که می خواهید به آن اشاره کنید ختم می شود. در حالی که از عبارت مسیر مطلق استفاده می کنید، باید تمام نام های زیر شاخه موجود در سلسله مراتب را که به مکان نهایی منتهی می شود تایپ کنید.
به عنوان مثال، اگر می خواهید با استفاده از عبارت مسیر مطلق به /myfolder/folder2 در داخل پوشه /var/www اشاره کنید، باید از:
/var/www/myfolder/folder2
… جایی که / در ابتدای عبارت به دایرکتوری ریشه در لینوکس اشاره دارد.
عبارات مسیر نسبی
از سوی دیگر، مسیر نسبی به عبارت مسیری اشاره دارد که از مسیر دیگری (معمولاً دایرکتوری فعلی فعلی) به عنوان ریشه یا پایه خود استفاده می کند. همانطور که از نام آن پیداست، “نسبت” به یک مسیر موجود در سیستم شما است.
به عنوان مثال، اگر در حال حاضر در دایرکتوری /var/www هستید و باید به /myfolder/folder2 اشاره کنید، از:
./myfolder/folder2
…جایی که . نشان دهنده دایرکتوری فعلی است که شما در آن هستید. می توانید دایرکتوری فعلی را با استفاده از دستور cd تغییر دهید.
به غیر از یک نقطه (.)، عبارات مسیر نسبی نیز از دو نقطه (..) برای ارجاع به دایرکتوری والد استفاده می کنند.
به عنوان مثال، در نظر بگیرید که در داخل پوشه /www در ساختار دایرکتوری زیر قرار دارید:
/var/www/myfolder/folder2
در عبارت مسیر ذکر شده در بالا، . نشان دهنده دایرکتوری www است در حالی که .. به دایرکتوری /var اشاره می کند. اگر دایرکتوری / تصادفی دیگری در داخل /var وجود دارد که باید در حالی که در /var/www هستید به آن دسترسی داشته باشید، از این کار استفاده کنید:
../random
به همین سادگی.
مطلق در مقابل نسبی: کدام عبارت مسیر بهتر است؟
اگرچه ممکن است عبارات مسیر برای شما به عنوان یک کاربر دسکتاپ ساده و بی اهمیت به نظر برسد، موارد استفاده مختلفی وجود دارد که استفاده از نام مسیر اشتباه ممکن است باعث ناراحتی های ناخواسته زیادی شود. وب سرورها مثال خوبی هستند.
به عنوان یک توسعه دهنده وب که بر روی پروژه ای که روی سرور لینوکس میزبانی می شود کار می کند، باید به فایل های داخل فهرست پروژه دسترسی داشته باشید. در اینجا، استفاده از عبارات مسیر نسبی استاندارد است زیرا هر تغییری در نامهای زیر شاخه یا نام دامنه پروژه میتواند منجر به شکستگی لینکها شود.
شما می توانید این را با یک مثال ساده درک کنید که کاربران دسکتاپ ممکن است بهتر با آن ارتباط برقرار کنند. کاراکتر / دایرکتوری ریشه در یک سیستم لینوکس را نشان می دهد. تصور کنید که به طور ناگهانی آن را تغییر دهید و کاراکتر / را به دایرکتوری خانه نشان دهید. بسیاری از دستورات شما که حاوی عبارات مسیر مطلق هستند کار نمی کنند زیرا / اکنون دوباره به دایرکتوری دیگری اختصاص داده شده است.
مزیت دیگر استفاده از عبارات مسیر نسبی این است که از آنجایی که آنها نسبت به دایرکتوری کاری فعلی هستند، در زمان شما صرفه جویی می کند که در غیر این صورت صرف تایپ کاراکترهای غیر ضروری می کنید.
تنها نکته در اینجا پیچیدگی و منحنی یادگیری مرتبط با عبارات نسبی است. اما این در عبارات مسیر مطلق نیز رایج است. برای اینکه در استفاده از مسیرهای مطلق استاد شوید، باید با سلسله مراتب دایرکتوری لینوکس آشنا باشید. می توانید از دستور درخت برای مشاهده کل درخت دایرکتوری لینوکس استفاده کنید و عبارات مسیر مطلق را برای خود آسان تر کنید.
آشنایی با سلسله مراتب دایرکتوری لینوکس
ساختار دایرکتوری لینوکس برای همه ماشین هایی که سیستم عامل های مبتنی بر لینوکس را اجرا می کنند مشترک است. میتوانید از دستوری مانند ls یا tree برای اطلاعات بیشتر در مورد نحوه ساختار فایلها و پوشهها در رایانه خود استفاده کنید.