ডিরেক্টরি এবং এর উপ-ডিরেক্টরিগুলি থেকে অন্য ডিরেক্টরিতে পুনরাবৃত্তভাবে টাইপ করে ফাইলগুলি কীভাবে সরানো যায়?


30

ডিরেক্টরি এবং তার উপ-ডিরেক্টরিগুলির সমস্ত থেকে কোনও ফাইল টাইপ সরানোর ভাল উপায় কী হবে?

"এই সমস্ত ডিগ্রি ইন / এডিডির পুনরাবৃত্তভাবে / সামুদির" এ সরান "এর মতো। আমি কয়েকটি জিনিস চেষ্টা করেছিলাম; আমার সর্বাত্মক প্রচেষ্টা ছিল (এখনও যে দুর্দান্ত ছিল না):

find /thisdir -type f -name '*.ogg' -exec mv /somedir {} \;

এটি প্রতিটি ফাইলের নামের আগে প্রতিটি লাইনে ফিরে আসে,

mv: cannot overwrite non-directory `/thisdir/*.ogg' with directory `/somedir'

উত্তর:


23

আপনি এর জন্য xargs সহ সন্ধান করতে পারেন

find /thisdir -type f -name "*.ogg" -print0 | xargs -0 -Imysongs mv -i mysongs /somedir

উপরের কমান্ডের -I xargs কে বলেছে আপনি কোন প্রতিস্থাপনের স্ট্রিংটি ব্যবহার করতে চান (অন্যথায় এটি কমান্ডের শেষে যুক্তি যুক্ত করে)।

অথবা
আপনার কমান্ডের মধ্যে কমান্ডের পরে '{}' সরানোর চেষ্টা করুন mv

find /thisdir -type f -name '*.ogg' -exec mv -i {} /somedir \;


1
উপরের কমান্ডগুলি চেষ্টা করার আগে ব্যাকআপ নিতে ভুলবেন না :-)।
হেমন্ত

2
বিটিডব্লিউ, ফাইল-নাম সমস্যার ক্ষেত্রে হোয়াইটস্পেস এড়ানোর জন্য সন্ধানের জন্য প্রথম-প্রিন্ট 0 এবং এক্সার্গের জন্য -0 ব্যবহার করা উচিত।
ম্যাক্সচলেপজিগ

@ ম্যাক্সচলেপজিগ: ভাল পয়েন্ট। আমি সম্পাদনা করব।
হেমন্ত

2
আমি mv -iএখানে দৃ strongly়তার সাথে ব্যবহার করার পরামর্শ দিচ্ছি , তাই যদি অপ্রত্যাশিত কিছু ঘটে তবে আপনি ফাইলগুলি ওভাররাইটিং ঝুঁকিপূর্ণ করবেন না।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

2
gnu কোর ইউজ থেকে এমভি সহ আপনি ব্যবহার করতে পারেন mv -t <targetdir>এবং instead এর পরিবর্তে;

10
find /thisdir -type f -name "*.ogg" -exec mv {} /somedir \;

আপনি মিভির পক্ষে যুক্তিগুলি আদান প্রদান করেছেন


9

Zsh বা ব্যাশ 4 এ, সমস্ত *.oggফাইল এতে সংগ্রহ করতে /somedir:

mv /thisdir/**/*.ogg /somedir

আপনি যদি ডিরেক্টরি শ্রেণিবিন্যাস পুনরুত্পাদন করতে চান: (সতর্কতা, সরাসরি ব্রাউজারে টাইপ করা)

rsync -a --prune-empty-dirs --include='*/' --include='*.ogg' --exclude='*' /thisdir /somedir

ব্যাশে সুবিধাজনক ছাড়িয়ে
চিহ্নিত করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.