یک اسکریپت شل بنویسید که همه فایلهای .txt داخل یک پوشهٔ مبدأ را به پوشهٔ مقصد کپی کند و برای هر فایل کپیشده یک سطر در فایل log شامل تاریخ/زمان و نام فایل ثبت کند.
3.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:50 0.0
از Bash و ابزارهای پایهای مثل cp، mkdir و date استفاده کنید؛ اسکریپت باید دو آرگومان (مبدأ و مقصد) بپذیرد، پوشهٔ مقصد را در صورت نیاز با mkdir -p ایجاد کند، سپس با یک حلقه (یا find) همهٔ فایلهای *.txt را پردازش کرده و هر فایل را با نگه داشتن نام به مقصد کپی کند و با echo و date رشتهای مانند "YYYY-MM-DD HH:MM:SS - filename" را به یک فایل backup.log اضافه کند. نکات: مقادیر را با کوتیشن "" محافظت کنید تا نامهای شامل فاصله درست کار کنند، وجود فایلها و مجوزها را چک کنید و اسکریپت را با ./script.sh source_dir dest_dir اجرا و تست کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پشتیبانی مناسب از نامهای دارای فاصله یا کاراکترهای ویژه، از نقل قولهای مناسب و قالب printf برای ثبت خط لاگ استفاده کنید تا تاریخ و نام فایل بهدرستی درج شود. قبل از هر چیز مطمئن شوید مبدأ وجود دارد، مجوزهای خواندن فایلها بررسی شوند و با mkdir -p پوشهٔ مقصد ایجاد شود تا خطا ندهد. برای پردازش فایلهای txt از find -type f -name '*.txt' -print0 و یک حلقه با read -r -d '' استفاده کنید تا نامها با فاصله یا کاراکترهای خاص به درستی خوانده شوند. لاگ را در فایل backup.log در پوشهٔ مقصد بنویسید و خطاهای احتمالی را نیز به همان فایل هدایت کنید تا بتوانید بهراحتی مشکلات را پیگیری کنید.
گزارش