আপনি জিএনইউ find
এবং জিএনইউ দিয়ে এটি করতে পারেন mv
:
find /dir1 -mindepth 2 -type f -exec mv -t /dir1 -i '{}' +
মূলত, এটি যদি find
পুরো ডিরেক্টরি গাছের মধ্যে যায় এবং প্রতিটি ফাইল ( -type f
) যা শীর্ষ স্তরের ডিরেক্টরিতে নেই ( -mindepth 2
) এর mv
জন্য যায় তবে এটি যে ডিরেক্টরিটি চায় সেটিতে স্থানান্তরিত করতে এটি চালিয়ে যায় -exec mv … +
। -t
যুক্তি mv
দেয় আপনি যদি গন্তব্য ডিরেক্টরির প্রথম উল্লেখ, যা প্রয়োজন হয় কারণ +
আকারে -exec
রাখে সব কমান্ডের শেষে উৎস অবস্থানে। -i
তোলে mv
কোনো সদৃশ overwrite করার আগে জিজ্ঞাসা; আপনি -f
জিজ্ঞাসা -n
না করে এগুলি ওভাররাইটের বিকল্প করতে পারেন (বা জিজ্ঞাসা বা ওভাররাইট না করে)।
স্টিফেন চেজেলাস যেমন উল্লেখ করেছেন, উপরেরগুলি কেবল জিএনইউ সরঞ্জামগুলির সাথে কাজ করে (যা লিনাক্সের উপর স্ট্যান্ডার্ড, তবে অন্যান্য সিস্টেমে নয়)। নিম্নলিখিতটি কিছুটা ধীরে ধীরে (কারণ এটি mv
একাধিকবার আহ্বান জানায় ) তবে আরও অনেকগুলি সার্বজনীন:
find /dir1 -mindepth 2 -type f -exec mv -i '{}' /dir1 ';'