আমার একটি ফোল্ডারএ রয়েছে যার মধ্যে ফোল্ডারবি রয়েছে যাতে প্রচুর ফাইল থাকে contains আমি ফোল্ডারবি থেকে মুক্তি পেতে চাই, তবে এর সামগ্রীগুলি নয়। আমি চাই those বিষয়বস্তুটি ফোল্ডারএর মধ্যে থাকুক। কমান্ডলাইনে আমি কীভাবে এটি সম্পাদন করতে পারি?
আমার একটি ফোল্ডারএ রয়েছে যার মধ্যে ফোল্ডারবি রয়েছে যাতে প্রচুর ফাইল থাকে contains আমি ফোল্ডারবি থেকে মুক্তি পেতে চাই, তবে এর সামগ্রীগুলি নয়। আমি চাই those বিষয়বস্তুটি ফোল্ডারএর মধ্যে থাকুক। কমান্ডলাইনে আমি কীভাবে এটি সম্পাদন করতে পারি?
উত্তর:
$ cd /path/to/folderA
$ mv folderB/* .
$ rmdir folderB
mv folderB/.* .
তাদের পাশাপাশি সরাতে। @ নিউলিনাক্সউজার, আপনার প্রশ্নের বিন্দুটি কার্যনির্বাহী ডিরেক্টরিটির একটি নাম (এই ক্ষেত্রে, ফোল্ডারএ)।
folderB/folderB
উপস্থিত থাকলে এটি ব্যর্থ হয় , সুতরাং স্ক্রিপ্টগুলিতে এটি ব্যবহার থেকে সাবধান থাকুন।
folderB
একটি উন্মাদ পরিমাণে ফাইল থাকলে এটিও ব্যর্থ হয় । bash: /bin/mv: Argument list too long
ব্যবহারের কারণে আপনি দেখতে পাবেন *
। যদি তাই ব্যবহার এর mv
একযোগে সঙ্গে find
হিসাবে, @amphetamachine বলেছেন বা সঙ্গেfor loop
দ্রুত উত্তর:
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"