ابزار کاربر

ابزار سایت


terminal:l:symbolic-links

این یک نگارش قدیمی از این مطلب است!


دستور ln (لینک ها در لینوکس)

در کل لینک ها یک نقظه اشاره به نقشه ای از یک سیستم فایل میسازند . این می تواند برای شما بسیار مفید باشد شما با ساخت یک لینک به یک دایرکتوری دیگر احتیاجی به تایپ کامل مسیر آن ندارید و یا لازم نیست در مدیر فایل گرافیکی خود دائم به بالا و پایین بروید و کافیست یکبار بر روی لینک خود کلیک کنید. شما میتوانید لینک ها را همان Shortcut ها (میانبرها) در مایکروسافت ویندوز در نظر بگیرید که البته چند تقاوت نیز با یکدیگر دارند.
همانطور که اشاره شد لینک ها در لینوکس همان مفهوم Shortcut ویندوز هستند. در خروجی دستور ls لینکها با حرف l در اول خروجی دستور نشان داده میشوند. دو نوع لینک soft و hard وجود دارند که تفاوتهایی با هم دارند. هر دایرکتوری در لینوکس inode خاص خود را دارد و لینک ها از inode برای پیدا کردن فایل اصلی استفاده میکنند.
دستور ln برای ایجاد اینکهای soft و hard استفاده میشود. هر فایل لینوکسی از دو بخش داده ها و نام فایل تشکیل شده است داده ها مرتبط با inode هستند و inode نکاشت اینکه داده در کجا هستند را بر عهده دارد.
برای درک بهتر داده ها در غالب فایلها ذخیره میشوند و این داده ها روی هارد قرار میگیرند وقتی دستور cat file را اجرا میکنید لینوکس از inode برای پیدا کردن محل و آدرس داده ها روی هارد استفاده میکند و محتوای آن را نشان میدهد. نام فایل مرتبط با inode number میباشد. البته یک inode میتواند به دو نام متفاوت هم اشاره کند.

یک hard link یک ورودی دایرکتوری است که به محل فیزیکی یک فایل اشاره دارد. 1) در حقیقت ما تنها یک فایل داریم اما ورودی ۲ یا بیشتر دایرکتوری به محل فیزیکی آن بر روی دیسک سخت اشاره دارند. برای ایجاد یک hard link در خط فرمان از دستور ln استفاده میشود. این دستور بطور پیش فرض یک hard link میسازد. برای نمونه من در اینجا یک hard link به فایل art.txt در دایرکتوری خانگی ام می سازم.

ln /tmp/art.txt ~/Pic/art.txt

در این نمونه یک ورودی در دایرکتوی /Pic/~ ایجاد شده که به محل فیزیکی فایل art.txt بر روی دیسک سخت اشاره میکند. خوب شما میتوانید با این فایل کار کنید برای نمونه اگر دستور ls -l را وارد کنیم تعداد hard link آن (که بلافاصله پس از مجور های دسترسی آن نمایش داده میشود) برابر ۲ یعنی ۲ دایرکتوری به این نقطه فیزیکی 2) از هارد اشاره دارند
اگر من فایل اصلی یعنی tmp/art.txt/ را پاک کنم ورودی دایرکتوری پاک خواهد شد و تعداد hard link ها ۱ خواهد بود و امام فایل همچنان باقی خواهد بود! چرا که هنوز یک hard link به آن وجود دارد و فایل هرگز پاک نمیشود مگر آنکه تعداد hard link های آن به صفر برسد.

باید توجه داشته باشید که hard link برای لینک دادن به دایرکتوری ها و به فایلی که در فایل سیستمی بر روی کامپیوتر دیگری است نمیتوان استفاده کرد.

لینک های نرم یا soft link ها که با نام های symbolic links یا symlinks نیز شناخته میشوند. بسیار شبیه shortcut های ویندوز هستند در soft link ها بر خلاف hard link ها هر لینک آدرس سخت افزاری3) مخصوص به خودشان را دارند. ایم لینکها تنها یک فایل هستند که میتوانند به یک فایل دیگر اشاره کنند. برای ایجاد این لینکها از گزینه s- به همراه دستور ln استفاده میشود

ln -s /tmp/art.txt ~/Pic/art.txt

اگر شما از دستور ls -l برای دیدن این فایل استفاده کنید به نتیجه ای مانند زیر خواهید رسید.

lrwxrwxrwx. 1 phoenix phoenix 32 Jan 17 18:24 art.txt -> /tmp/art.txt
1)
به محل فیزیکی یک فایل inode میگویند
2) , 3)
inode
terminal/l/symbolic-links.1547736982.txt.gz · آخرین ویرایش: 2019/01/17 18:26 توسط phoenix

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki