یک اسکریپت Bash بنویسید که دو آرگومان بگیرد (مسیر مبدا و مسیر مقصد) و یک لینک نمادین از مبدا به مقصد ایجاد کند؛ اگر در مسیر مقصد یک لینک نمادین وجود داشت آن را حذف کند و در غیر این صورت پیام خطا مناسب نمایش دهد.
3.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:24 0.0
برای حل این مسئله از دستورات پایه شل مانند ln -s برای ایجاد لینک نمادین و rm برای حذف استفاده کنید؛ قبل از ایجاد لینک با [ -L "$dest" ] بررسی کنید که آیا مقصد یک لینک نمادین موجود است و در صورت وجود آن را حذف کنید، همچنین ورودیها را با بررسی تعداد آرگومانها و وجود فایل/دایرکتوری مبدا اعتبارسنجی کنید. نکات: readlink -f برای گرفتن مسیر کامل مفید است، ln -sf میتواند به جای حذف صریح استفاده شود اما بهتر است برای شفافیت ابتدا وجود لینک را بررسی و سپس حذف یا جایگزینی را انجام دهید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پایداری، دو آرگومان را چک کنید و با readlink -f مسیر کامل مبدا را به دست بیاورید تا صحت مسیر روشن باشد. اگر [ -L "$dest" ] بود، لینک نمادین موجود در مقصد را با rm -f حذف کرده و سپس لینک جدید را ایجاد کنید. در غیر این صورت پیام خطای مناسبی نمایش دهید تا کاربر بفهمد که مقصد یک لینک نمادین نیست یا وجود ندارد. بهینهسازی: میتوانید از ln -sf در مواقع خاص استفاده کنید، اما بهتر است ابتدا وضعیت را بررسی کنید تا رفتار واضح و قابل پیشبینی باشد.
گزارش