ফোল্ডার সামগ্রীগুলি প্যারেন্ট ফোল্ডারে সরান - লিনাক্স কমান্ডলাইন


18

আমার একটি ফোল্ডারএ রয়েছে যার মধ্যে ফোল্ডারবি রয়েছে যাতে প্রচুর ফাইল থাকে contains আমি ফোল্ডারবি থেকে মুক্তি পেতে চাই, তবে এর সামগ্রীগুলি নয়। আমি চাই those বিষয়বস্তুটি ফোল্ডারএর মধ্যে থাকুক। কমান্ডলাইনে আমি কীভাবে এটি সম্পাদন করতে পারি?

উত্তর:


28
$ cd /path/to/folderA
$ mv folderB/* .
$ rmdir folderB

1
এমভি ফোল্ডারবি / *। ? বিন্দু কি?
নিউলিনাক্সউজার

8
ডট ফাইলগুলি (যাদের নাম দিয়ে শুরু হওয়া ফাইল files) অনুসন্ধান করুন কারণ এতে সেগুলি অন্তর্ভুক্ত থাকবে না। কি mv folderB/.* .তাদের পাশাপাশি সরাতে। @ নিউলিনাক্সউজার, আপনার প্রশ্নের বিন্দুটি কার্যনির্বাহী ডিরেক্টরিটির একটি নাম (এই ক্ষেত্রে, ফোল্ডারএ)।
ব্রায়ান

1
এটি folderB/folderBউপস্থিত থাকলে এটি ব্যর্থ হয় , সুতরাং স্ক্রিপ্টগুলিতে এটি ব্যবহার থেকে সাবধান থাকুন।
ফিলিপোস

1
folderBএকটি উন্মাদ পরিমাণে ফাইল থাকলে এটিও ব্যর্থ হয় । bash: /bin/mv: Argument list too longব্যবহারের কারণে আপনি দেখতে পাবেন *। যদি তাই ব্যবহার এর mvএকযোগে সঙ্গে findহিসাবে, @amphetamachine বলেছেন বা সঙ্গেfor loop
জাভিয়ের দে লা রোসা

2

দ্রুত উত্তর:

cd /path/to/folderA
find folderB -maxdepth 1 -mindepth 1 -exec mv {} . \;
rmdir folderB

কোড-হার্ডি উত্তর:

cd /path/to/folderA
folderB_temp="$(mktemp -d -t folderB.XXXXXX)"
mv folderB "$folderB_temp"
find "$folderB_temp/folderB" -maxdepth 1 -mindepth 1 -exec mv {} . \;
rmdir --parents --ignore-fail-on-non-empty "$folderB_temp/folderB"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.