یک اسکریپت شل بنویسید که همه فایل‌های .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 اجرا و تست کنید.

توسط پژوهشگر در 220 روز قبل ساعت 01:50
دسته بندی ها: Bash Scripting Bash Scripting for beginner
arman در 220 روز قبل ساعت 11:51

برای پشتیبانی مناسب از نام‌های دارای فاصله یا کاراکترهای ویژه، از نقل قول‌های مناسب و قالب printf برای ثبت خط لاگ استفاده کنید تا تاریخ و نام فایل به‌درستی درج شود. قبل از هر چیز مطمئن شوید مبدأ وجود دارد، مجوزهای خواندن فایل‌ها بررسی شوند و با mkdir -p پوشهٔ مقصد ایجاد شود تا خطا ندهد. برای پردازش فایل‌های txt از find -type f -name '*.txt' -print0 و یک حلقه با read -r -d '' استفاده کنید تا نام‌ها با فاصله یا کاراکترهای خاص به درستی خوانده شوند. لاگ را در فایل backup.log در پوشهٔ مقصد بنویسید و خطاهای احتمالی را نیز به همان فایل هدایت کنید تا بتوانید به‌راحتی مشکلات را پیگیری کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری