با ثبت نام در سایت از مزایای اعضا بهره مند شوید!

انتقال کل فایل ها از یک فرمت خاص به یک پوشه

+3 امتیاز
66 بازدید
سوال شده آذر 10, 1393 در دستورات لینوکس توسط milad283 (58 امتیاز)

سلام

من می خوام کل فایل های mp3 رو از پوشه home و تمامی پوشه های زیر مجموعه ی home به پوشه Music انتقال بدم. به نظرتون چه دستوری می تونم استفاده کنم؟ اینو می دونم که برای انتقال فایل از home به Music باید از دستور زیر استفاده کنم :

mv ./*.mp3 Music

اما نمی دونم چه طور می تونم تمام mp3 های پوشه های زیر مجموعه رو هم انتقال بدم.

ممنون میشم راهنماییم کنید.

1 پاسخ

+2 امتیاز
پاسخ داده شده آذر 10, 1393 توسط mohammadhzp (4,005 امتیاز)

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

find / -iname "*.mp3" -print

برای انتقال فایل های mp3 این دستور رو بزنید

find ./ -iname "*.mp3" -exec mv {} /home/username/mp3 \;

برای انتقال تنها فایل ها بدون دایرکتوری ها این دستور رو بزنید

find ./ -iname "*.mp3" -type f -exec /bin/mv {} /homr/username/mp3 \;

این دستور برای پیدا کردن تمام دایرکتوری هایی که اسم mp3 دارن و انتقال آنها

find ./ -iname "*.mp3" -type d -exec /bin/mv {} /home/username/mp3 \;

و دستور آخر و مورد نیاز برای شما :
با این دستور تمام دایرکتوری و sub-directory هارو بررسی و در صورت وجود فایل .mp3 انتقال بدین(تنها فایل بدون دایرکتوری)

find ./ -iname "*.mp3" -type f -print0 | xargs -0 -I '{}' /usr/bin/rsync -avR "{}" /home/username/mp3/

(دستور بالا متاسفانه نصفش خارج میشد مجبور شدم اونو داخل تگ code نذارم.شما همینو کپی پیست کن جایی و تغییراتتو داخلش بده
مدیریت محترم خواهشا این مشکل بسیار بزرگ و مهم رو حل کنند)
در مثال بالا xarg -9 -I برای بالا بردن عملکرد و حذف مشکلات احتمالی در نام فایل ها برای انتقال می باشد
دقت کنید که /home/username/mp3 رو تغییر بدین به چیزی که میخواین.برای انتقال فایل به دایرکتوری مورد نظر بروید و دستور های بالا رو وارد کنید

سرور مجازی لینوکس

2,159 سوال

3,311 پاسخ

3,437 دیدگاه

9,388 کاربر

...