پاسخ سریع: چگونه می توانم تمام لینک های سخت را در لینوکس پیدا کنم؟

برای پیدا کردن همه پیوندهای سخت به طور همزمان، داشته باشید برای همه فایل‌های یک دستگاه، inodes را پیدا کنیدو سپس از چیزهایی مانند sort و uniq برای یافتن موارد تکراری استفاده کنید. این فایل ها را در دایرکتوری فعلی لیست می کند و یک ls روی آن اجرا می کند.

می توانید پیوندهای سخت به شماره inode NUM توسط جستجو کنید با استفاده از "-inum NUM". اگر در زیر دایرکتوری که در آن جستجو را شروع می‌کنید، نقاط نصب فایل وجود دارد، از گزینه '-xdev' استفاده کنید، مگر اینکه از گزینه '-L' نیز استفاده کنید.

ویندوز با سیستم فایل NTFS دارای محدودیت است 1024 لینک سخت روی یک فایل

چگونه از Find در لینوکس استفاده کنم؟

مثال های اساسی

  1. پیدا کردن . – نام thisfile.txt را بگذارید. اگر می خواهید بدانید چگونه فایلی به نام thisfile در لینوکس پیدا کنید. …
  2. پیدا کردن /home -name *.jpg. به دنبال همه باشید. فایل های jpg در /home و دایرکتوری های زیر آن.
  3. پیدا کردن . – تایپ کنید f -خالی. به دنبال یک فایل خالی در دایرکتوری فعلی بگردید.
  4. find /home -user randomperson-mtime 6 -iname ".db"

تو می توانی بررسی کنید که آیا فایل یک پیوند نمادین با [ -L file] است یا خیر . به طور مشابه، می توانید با [ -f file ] تست کنید که آیا یک فایل یک فایل معمولی است یا خیر، اما در این صورت، بررسی پس از حل کردن symlink ها انجام می شود. هاردلینک ها یک نوع فایل نیستند، آنها فقط نام های مختلفی برای یک فایل (از هر نوع) هستند.

دلیل پیوند سخت دایرکتوری ها این است مجاز نیست کمی فنی است در اصل، آنها ساختار فایل-سیستم را می شکنند. به هر حال به طور کلی نباید از لینک های سخت استفاده کنید. پیوندهای نمادین اکثر عملکردهای مشابه را بدون ایجاد مشکل امکان پذیر می کنند (مثلاً پیوند هدف ln -s).

برای مشاهده پیوندهای نمادین در دایرکتوری:

  1. یک ترمینال را باز کنید و به آن دایرکتوری بروید.
  2. دستور ls -la را تایپ کنید. این فهرست طولانی تمام فایل های دایرکتوری را نشان می دهد، حتی اگر مخفی باشند.
  3. فایل هایی که با l شروع می شوند فایل های پیوند نمادین شما هستند.

1 پاسخ هر دایرکتوری یک پیوند به خود و والد خود دارد (به همین دلیل است که . یک دایرکتوری خالی دارای تعداد لینک 2 خواهد بود). اما از آنجایی که هر دایرکتوری به والد خود پیوند دارد، هر دایرکتوری که دارای یک زیر شاخه باشد، پیوندی از آن فرزند خواهد داشت.

اگر دو فایل با ویژگی‌های یکسان پیدا کردید اما مطمئن نیستید که پیوند سختی دارند، برای مشاهده شماره inode از دستور ls -i استفاده کنید. فایل‌هایی که به یکدیگر پیوند سختی دارند، شماره inode یکسانی دارند. شماره inode مشترک 2730074 است، به این معنی که این فایل ها داده های یکسانی هستند.

یک پیوند سخت هرگز به یک فایل حذف شده اشاره نمی کند. یک پیوند سخت مانند یک اشاره گر به داده های فایل واقعی است. و اشاره گر در اصطلاحات سیستم فایل "inode" نامیده می شود. بنابراین، به عبارت دیگر، ایجاد یک پیوند سخت، ایجاد یک inode دیگر یا یک اشاره گر به یک فایل است.

این پست را دوست دارید؟ لطفا با دوستان خود به اشتراک بگذارید:
سیستم عامل امروز