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

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

میدانیم که در لینوکس برای کپی کردن یک فایل در یک دایرکتوری دیگر از دستور

$ cp     نام فایل      مقصد

یعنی در دستور cp  نام فایل را همراه با مسیری که فایل در آن است یا بدون دادن مسیر یا از مسیر جاری

به داخل مسیر مقصد کپی میکنیم

حالا فرض کنید فایلی بنام  test  داریم  و میخواهیم این فایل را در مسیرهای مختلف کپی کنیم

کاری که میکنیم این است که برای هر مسیر باید دستور کپی را جداگانه بنویسیم

یعنی اگر یک فایل را قرار باشد به دفعات مثلا 5 بار یا ده بار یا صد بار در مسیرهای مختلف کپی نماییم

آیا باید به تعداد 5 یا ده یا صد بار دستور کپی را اجرا کنیم؟

در دستور زیر روشی را نشان میدهم که بتوانیم تنها با یک خط فرمان و با استفاده

از pipe line و ترکیب دستورات echo,  xargs  و cp  یک فایل را در هرتعداد مسیری که میخواهیم کپی نماییم.

$ echo    مسیر1    مسیر2      | xargs   -n 1  cp   -v  /home/example.com/maildir/test

در دستور بالا فرمان  echo  به همراه مسیرهایی که قرار است در آنجا فایل مورد نظر را کپی نماییم نشان داده شده است که اجرای این فرمان به دستور xargs ارسال میشود

سپس دستور xargs  از گزینه

-n 1  یعنی در هر خط یک آرگومان میتوانیم استفاده کنیم و این آرگومان را به دستور cp  پاس دهیم .

-v   برای نمایش مرحله کپی

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

با یک مثال نحوه استفاده از این دستور را نشان میدهم

ابتدا در مسیر home directory خودم یک فایل با نام test  ساختم و سپس این فایل را در مسیر های

 ~/Pictures , ~/Downloads,  ~/Documents

کپی کردم و سپس از کلیه این مسیرها لیست گرفتم تا مطمئن شوم که فایل test در آنها کپی شده است

 

برای آنکه بتوانید در یک مسیر طولانی به مسیرهای بالاسرتان  بروید  از دستور bd استفاده نمایید .

4 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *