Mac OS X-এর কমান্ড লাইন থেকে একটি নেস্টেড ডিরেক্টরি & ফাইল হায়ারার্কি সমতল করুন
আপনার কি কখনও একটি ডিরেক্টরি কাঠামো সমতল করার প্রয়োজন হয়েছে, একটি ডিরেক্টরি চাইল্ড ফোল্ডার থেকে সমস্ত ফাইল সামগ্রীকে একটি একক ফোল্ডারে সরানো হয়েছে? আপনি ম্যাক ওএস এক্স বা লিনাক্সের ফাইল সিস্টেম থেকে ফাইল এবং ফোল্ডারগুলি ঘুরে ম্যানুয়ালি এটি করতে পারেন, একটি দ্রুত বিকল্প হল কমান্ড লাইনে যাওয়া। হতে পারে এক পর্যায়ে আপনি ডিরেক্টরিগুলির একটি নেস্টেড শ্রেণিবিন্যাস তৈরি করেছেন যা আপনাকে এখন সেই নেস্টেড ফোল্ডারগুলি থেকে সমস্ত ফাইল সরিয়ে এবং একটি একক ডিরেক্টরিতে ফিরিয়ে আনতে হবে, অথবা আপনি একটি ডিরেক্টরি কাঠামোকে সরল করতে খুঁজছেন, কারণ যাই হোক না কেন, এটি কৌশল বেশ ভাল কাজ করে।
ফাইল এবং ডিরেক্টরি স্ট্রাকচার সমতল করার জন্য কমান্ড লাইন ব্যবহার করা স্পষ্টতই উন্নত ব্যবহারকারীদের জন্য সর্বোত্তম সংরক্ষিত যারা সাধারণভাবে টার্মিনাল ব্যবহার করতে স্বাচ্ছন্দ্যবোধ করেন, যদি এটি আপনাকে বর্ণনা না করে, তাহলে ফাইন্ডারের মাধ্যমে ম্যানুয়ালি করার কথা বিবেচনা করুন , অথবা ফাইল সিস্টেম কার্যকলাপের অনুরূপ স্বয়ংক্রিয়তা সম্পন্ন করতে Mac Automator অ্যাপ ব্যবহার করে। যাইহোক, আমরা এখানে কমান্ড লাইন থেকে ডিরেক্টরি সমতল করার উপর ফোকাস করছি।
একটি নেস্টেড ফাইল ডিরেক্টরিকে সমতল করার উদাহরণ
আমরা কী সম্পন্ন করার চেষ্টা করছি তা আরও ভালোভাবে বোঝার জন্য, আসুন ব্যবহারকারীর হোম ফোল্ডারে অবস্থিত TestDirectory নামক একটি কাল্পনিক ডিরেক্টরি কাঠামোর উদাহরণ নেওয়া যাক। এই উদাহরণে, TestDirectory-এ সাব-ফোল্ডার রয়েছে যেমন SubDirectory1, SubDirectory2, SubDirectory3, ইত্যাদি, প্রতিটি সেই নিজ নিজ ফোল্ডারে ফাইল সহ। আমরা এখানে যা করতে চাইছি তা হল ডিরেক্টরি কাঠামোকে সমতল করা, সাবডিরেক্টরি(এক্স) থেকে প্যারেন্ট ডিরেক্টরি "টেস্টডিরেক্টরি" এ সমস্ত ফাইল সরানো।প্রারম্ভিক ডিরেক্টরি এবং বিষয়বস্তু বারবার দেখানো হয়েছে এইরকম দেখতে:
$ খুঁজুন ~/TestDirectory/ -type f ~/TestDirectory/rooty.jpg ~/TestDirectory/SampleDirectory1/beta-tool-preview.jpg ~/TestDirectory/SampleDirectory1 /alphabeta-tool.jpg ~/TestDirectory/SampleDirectory2/test-tools.jpg ~/TestDirectory/SampleDirectory3/test-png.jpg ~/TestDirectory/SampleDirectory3/test1.jpgctory3/test1.jpgectory/TestDirectoryTestDirectory2/TestDirectory
এই ডিরেক্টরি এবং সাবডিরেক্টরি বিষয়বস্তুকে TestDirectory ফোল্ডারে সমতল করতে, আপনি নিম্নলিখিত কমান্ড স্ট্রিংটি ব্যবহার করবেন:
find TargetDirectory/ -mindepth 2 -type f -exec mv -i '{}' TargetDirectory/ ';'
ডিরেক্টরি বিষয়বস্তু সমতল করার পর, তালিকাভুক্ত হলে এটি দেখতে এইরকম হওয়া উচিত:
~/TestDirectory/rooty.jpg ~/TestDirectory/beta-tool-preview.jpg ~/TestDirectory/alphabeta-tool.jpg ~/TestDirectory/test-tools .jpg ~/TestDirectory/test-png.jpg ~/TestDirectory/test1.jpg ~/TestDirectory/test2.jpg
মনে রাখবেন সাবডিরেক্টরিগুলি এখনও থাকবে, সেগুলি খালি থাকবে৷ ধারণা তৈরী কর? যদি তা না হয়, অথবা যদি তা প্রদর্শন না করে যে আপনি কী করতে চান, আপনি সম্ভবত একটি ডিরেক্টরিকে মোটেও সমতল করতে চান না, হয়তো আপনি অন্যত্র একটি জটিল অনুলিপি করতে একত্রিত করতে বা একইভাবে ব্যবহার করতে চাইছেন৷
কমান্ড লাইনের সাহায্যে একটি ডিরেক্টরী স্ট্রাকচার এবং নেস্টেড ফাইল হায়ারার্কি সমতল করা
এগিয়ে যাওয়ার জন্য প্রস্তুত? কমান্ড স্ট্রিংটি আমরা একটি ডিরেক্টরি কাঠামোকে সমতল করতে এবং সাবডিরেক্টরি থেকে সমস্ত ফাইলকে টার্গেট ডিরেক্টরির বেসে সরানোর জন্য ব্যবহার করতে যাচ্ছি:
find -mindepth 2 -type f -exec mv -i '{}';'
উপরের উদাহরণে যেমন দেখানো হয়েছে সমতল করার জন্য আপনার পছন্দের ডিরেক্টরি দিয়ে প্রতিস্থাপন করুন।
হ্যাঁ, নির্দেশিকাটি কমান্ড স্ট্রিং-এ দুবার প্রদর্শিত হয়, প্রথমবার উপ-ডিরেক্টরি সমতল করার জন্য ডিরেক্টরি অনুসন্ধান করা হচ্ছে, এবং দ্বিতীয়বার পাওয়া আইটেমগুলির জন্য গন্তব্য হিসাবে।
নির্দিষ্ট গন্তব্যের সাথে সুনির্দিষ্ট হোন, কারণ এটি বিপরীত করা যায় না (ভাল, অন্তত আপনার পক্ষ থেকে প্রচুর ম্যানুয়াল কাজ ছাড়া), তাই আপনি যদি নিশ্চিত হন যে আপনি স্থান পরিবর্তন করতে চান তবেই এটি করুন টার্গেট ডাইরেক্টরির চাইল্ড ডিরেক্টরির সমস্ত ফাইল টার্গেট রুট ফোল্ডারে ফিরে আসে।
আগে উল্লিখিত হিসাবে, আপনি OS X এর ফাইন্ডারেও এটি করতে পারেন, বা অন্তত ফাইন্ডারে ফাইল এবং ফোল্ডারের পরিবর্তনগুলি পর্যবেক্ষণ করতে পারেন৷ অপশন+লিস্ট ভিউতে ছোট তীর চিহ্নে ক্লিক করলে সমস্ত সাবডিরেক্টরি খুলে যায়, ফোল্ডারের অনুক্রমটি এইভাবে দেখায়:
বিভিন্ন bash এবং zsh বিকল্পের সাথে ছটফট করার পর, এই সহজ কৌশলটি StackExcange-এ একজন মন্তব্যকারী রেখে গেছেন এবং এটি সবচেয়ে সহজ এবং সবচেয়ে সামঞ্জস্যপূর্ণ পদ্ধতিতে পরিণত হয়েছে। যদি আপনি একটি নেস্টেড ডিরেক্টরি সমতল করার একটি ভাল উপায় জানেন, তাহলে মন্তব্যে আমাদের জানান!