অ্যান্ড্রয়েড

কমান্ড লাইনটি ব্যবহার করে কীভাবে লিনাক্সে ফাইলগুলি সন্ধান করা যায়

Week 1

Week 1

সুচিপত্র:

Anonim

লিনাক্স সিস্টেম অ্যাডমিনিস্ট্রেটরদের অস্ত্রাগারগুলির অন্যতম কার্যকর সরঞ্জাম ফাইন্ড কমান্ড। এটি কোনও ব্যবহারকারী প্রদত্ত অভিব্যক্তির ভিত্তিতে ডিরেক্টরি হায়ারার্কিতে ফাইল এবং ডিরেক্টরি অনুসন্ধান করে এবং প্রতিটি ম্যাচ করা ফাইলটিতে ব্যবহারকারী-নির্দিষ্ট ক্রিয়া সম্পাদন করতে পারে।

ফাইল এবং ডিরেক্টরিগুলির অনুমতি, প্রকার, তারিখ, মালিকানা, আকার এবং আরও অনেক কিছুর উপর ভিত্তি করে অনুসন্ধানের জন্য আপনি অনুসন্ধান আদেশটি ব্যবহার করতে পারেন। এটি অন্যান্য সরঞ্জামগুলির সাথে যেমন grep বা sed সংমিশ্রণেও ব্যবহার করা যেতে পারে।

লিনাক্স কমান্ড সিনট্যাক্স সন্ধান করে

ফাইন্ড কমান্ডের সাধারণ বাক্য গঠন নিম্নরূপ:

find

  • options বৈশিষ্ট্যটি প্রতীকী লিঙ্কগুলি, ডিবাগিং বিকল্পগুলি এবং অপ্টিমাইজেশন পদ্ধতির চিকিত্সা নিয়ন্ত্রণ করে path… বৈশিষ্ট্যটি সূচনা ডিরেক্টরি বা ডিরেক্টরিগুলি যেখানে ফাইলগুলি অনুসন্ধান করবে সেগুলি সংজ্ঞায়িত করে expression বৈশিষ্ট্যটি বিকল্পগুলি, অনুসন্ধানের নিদর্শনগুলি এবং সমন্বয়ে গঠিত is অপারেটর দ্বারা পৃথক কর্ম।

ডিরেক্টরিতে ফাইলগুলি অনুসন্ধান করার জন্য, find কমান্ডটি ব্যবহার করা ব্যবহারকারীকে সেই ডিরেক্টরিতে পড়ার অনুমতি থাকা দরকার।

আসুন নীচের উদাহরণটি একবার দেখুন:

find -L /var/www -name "*.js"

  • বিকল্প -L (বিকল্পগুলি) প্রতীকী লিঙ্কগুলি অনুসরণ করার জন্য ফাইন্ড কমান্ডকে বলে। /var/www (পথ…) অনুসন্ধান করা ডিরেক্টরিটি নির্দিষ্ট করে। (এক্সপ্রেশন) -name "*.js ফাইলগুলি অনুসন্ধান করতে সন্ধান করতে বলে .js (জাভাস্ক্রিপ্ট ফাইল)।

নাম অনুসারে ফাইলগুলি সন্ধান করুন

নাম অনুসারে ফাইল সন্ধান করা সম্ভবত ফাইন্ড কমান্ডের সর্বাধিক সাধারণ ব্যবহার। নাম ব্যবহার করে কোনও ফাইল সন্ধান করার জন্য, -name বিকল্পটি আপনি অনুসন্ধান করা ফাইলটির নাম অনুসরণ করে followed

উদাহরণস্বরূপ, /home/linuxize ডিরেক্টরিতে document.pdf নামে একটি ফাইল সন্ধান করতে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

find /home/linuxize -type f -name document.pdf

কেস-সংবেদনশীল অনুসন্ধান চালানোর জন্য, -iname সাহায্যে বিকল্প -iname পরিবর্তন করুন:

find /home/linuxize -type f -iname document.pdf

উপরের কমান্ডটি "ডকুমেন্ট.পিডিএফ", "ডকুমেন্ট.পিডিএফ".. ইত্যাদি সাথে মিলবে।

এক্সটেনশন দ্বারা ফাইলগুলি সন্ধান করুন

এক্সটেনশন দ্বারা ফাইলগুলি অনুসন্ধান করা নাম অনুসারে ফাইলগুলি অনুসন্ধান করা সমান। উদাহরণস্বরূপ, /var/log/nginx .log.gz ডিরেক্টরিতে আপনি ব্যবহার করতে পারেন .log.gz দিয়ে শেষ হওয়া সমস্ত ফাইল সন্ধান করতে:

find /var/log/nginx -type f -name '*.log.gz'

এটি উল্লেখ করা জরুরী যে আপনি যখন ওয়াইল্ডকার্ড চরিত্রটি ব্যবহার করেন, আপনাকে অবশ্যই প্যাটার্নটি উদ্ধৃত করতে হবে বা ব্যাকস্ল্যাশ সহ অ্যাসিস্টিক * চিহ্নটি এড়াতে হবে \ যাতে এটি শেল দ্বারা ব্যাখ্যা করা না যায়।

*.log.gz মেলে না এমন সমস্ত ফাইল *.log.gz করতে আপনি *.log.gz বিকল্পটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, *.log.gz শেষ না হওয়া সমস্ত ফাইল সন্ধান করার জন্য:

find /var/log/nginx -type f -not -name '*.log.gz'

প্রকারভেদে ফাইলগুলি সন্ধান করুন

কখনও কখনও আপনার নির্দিষ্ট ফাইলের জন্য যেমন সাধারণ ফাইল, ডিরেক্টরি বা সিমলিংকগুলির সন্ধান করতে পারে। লিনাক্সে, সমস্ত কিছুই একটি ফাইল।

ফাইলগুলির ধরণের ভিত্তিতে অনুসন্ধানের জন্য, ফাইলের ধরণ নির্দিষ্ট করতে -type বিকল্প এবং নিম্নলিখিত বর্ণনাকারীদের একটি ব্যবহার করুন:

  • f : একটি নিয়মিত ফাইল d : ডিরেক্টরি l : প্রতীকী লিঙ্ক c : অক্ষর ডিভাইস b : ব্লক ডিভাইস p : নামক পাইপ (ফিফো) s : সকেট

উদাহরণস্বরূপ, বর্তমান কার্যনির্বাহী ডিরেক্টরিতে সমস্ত ডিরেক্টরি সন্ধান করতে আপনি ব্যবহার করতে পারেন:

find. -type d

সাধারণ উদাহরণটি chmod কমান্ড ব্যবহার করে ওয়েবসাইট ফাইলের অনুমতিগুলি পুনরাবৃত্তভাবে 644 এবং ডিরেক্টরি অনুমতিগুলি 75৫৫-এ পরিবর্তন করা হবে:

find /var/www/my_website -type d -exec chmod 0755 {} ; find /var/www/my_website -type f -exec chmod 0644 {} ;

আকার অনুসারে ফাইলগুলি সন্ধান করুন

ফাইল আকারের উপর ভিত্তি করে ফাইলগুলি সন্ধান করতে, আকারের মাপদণ্ডের সাথে-আকারের প্যারামিটারটি পাস করুন। আপনি ফাইলের আকার নির্দিষ্ট করতে নিম্নলিখিত প্রত্যয় ব্যবহার করতে পারেন:

  • b : 512-বাইট ব্লক (ডিফল্ট) c : বাইটস w : দ্বি-বাইট শব্দের k : কিলোবাইট M : মেগাবাইটস G : গিগাবাাইট

নিম্নলিখিত কমান্ডটি /tmp ডিরেক্টরিতে 1024 বাইটের সমস্ত ফাইল খুঁজে বের করবে:

find /tmp -type f -size 1024c

ফাইন্ড কমান্ড আপনাকে নির্দিষ্ট আকারের চেয়ে বড় বা কম ফাইলগুলির সন্ধানের অনুমতি দেয়।

নিম্নলিখিত উদাহরণে, আমরা বর্তমান ওয়ার্কিং ডিরেক্টরিতে 1MB চেয়ে কম সমস্ত ফাইল সন্ধান করছি। মাইনাসটি দেখুন - আকারের মানটির আগে প্রতীক:

find. -type f -size -1M

find. -type f -size +1M

আপনি এমনকি আকারের মধ্যে ফাইল অনুসন্ধান করতে পারেন। নিম্নলিখিত কমান্ডটি 1 এবং 2MB মধ্যে সমস্ত ফাইল সন্ধান করবে:

find. -type f -size +1M -size 21M

পরিবর্তনের তারিখ অনুসারে ফাইলগুলি সন্ধান করুন

ফাইন্ড কমান্ড ফাইলগুলি তাদের শেষ পরিবর্তন, অ্যাক্সেস বা পরিবর্তনের সময়ের ভিত্তিতে অনুসন্ধান করতে পারে।

আকার অনুসারে অনুসন্ধান করার সময়, "বৃহত্তর" বা "এর চেয়ে কম" এর জন্য প্লাস এবং বিয়োগ চিহ্নগুলি ব্যবহার করুন।

ধরা যাক যে কয়েক দিন আগে, আপনি একটি ডোভকোট কনফিগারেশন ফাইলের মধ্যে একটি পরিবর্তন করেছেন তবে আপনি কোনটি ভুলে গেছেন। আপনি সহজেই /etc/dovecot/conf.d ডিরেক্টরিতে সমস্ত ফাইল ফিল্টার করতে পারেন যা .conf দিয়ে শেষ হয় এবং শেষ পাঁচ দিনে এটি দিয়ে সংশোধন করা হয়েছে:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

-daystart বিকল্পটি ব্যবহার করে পরিবর্তনের তারিখের উপর ভিত্তি করে ফাইলগুলি ফিল্টার করার আরও একটি উদাহরণ এখানে। নীচের কমান্ডটি 30 বা ততোধিক দিন আগে সংশোধিত /home ডিরেক্টরিতে সমস্ত ফাইল তালিকাভুক্ত করবে:

find /home -mtime +30 -daystart

অনুমতি অনুসারে ফাইলগুলি সন্ধান করুন

-perm বিকল্পটি আপনাকে ফাইলের অনুমতিগুলির উপর ভিত্তি করে ফাইলগুলি অনুসন্ধান করার অনুমতি দেয়।

উদাহরণস্বরূপ, /var/www/html ডিরেক্টরিতে ঠিক 775 অনুমতি সহ সমস্ত ফাইল সন্ধান করতে আপনি ব্যবহার করতে পারেন:

find /var/www/html -perm 644

আপনি বিয়োগ - বা স্ল্যাশ / দিয়ে সংখ্যার মোড উপসর্গ করতে পারেন।

যখন স্ল্যাশ / উপসর্গ হিসাবে ব্যবহৃত হয়, তারপরে কমপক্ষে একটি বিভাগ (ব্যবহারকারী, গোষ্ঠী বা অন্যান্য) ফাইলের সাথে ম্যাচ করার জন্য কমপক্ষে সংশ্লিষ্ট বিট সেট থাকতে হবে।

নিম্নলিখিত উদাহরণ কমান্ড বিবেচনা করুন:

find. -perm /444

উপরের কমান্ডটি ব্যবহারকারী, গোষ্ঠী বা অন্য কোনওর জন্য সেট করা পঠন অনুমতিগুলির সাথে সমস্ত ফাইলের সাথে মিলবে।

যদি বিয়োগ - উপসর্গ হিসাবে ব্যবহৃত হয় তবে ফাইলের জন্য কমপক্ষে নির্দিষ্ট বিটগুলি সেট করতে হবে। নিম্নলিখিত কমান্ডটি এমন ফাইলগুলির সন্ধান করবে যা মালিক এবং গোষ্ঠীর জন্য অনুমতি পড়তে এবং লেখার অনুমতি পেয়েছে এবং অন্যান্য ব্যবহারকারীদের দ্বারা পঠনযোগ্য:

find. -perm -664

মালিক দ্বারা ফাইলগুলি সন্ধান করুন

কোনও নির্দিষ্ট ব্যবহারকারী বা গোষ্ঠীর মালিকানাধীন ফাইলগুলি অনুসন্ধান করতে, ব্যবহারকারী এবং -group বিকল্পগুলি ব্যবহার করুন।

উদাহরণস্বরূপ, ব্যবহারকারীর linuxize মালিকানাধীন সমস্ত ফাইল এবং ডিরেক্টরি অনুসন্ধান করতে আপনি চালনা করবেন:

find / -user linuxize

এখানে একটি বাস্তব বিশ্বের উদাহরণ। ধরা যাক আপনি ব্যবহারকারীর www-data র মালিকানাধীন সমস্ত ফাইল সন্ধান করতে চান এবং nginx www-data থেকে nginx ফাইলগুলির মালিকানা এনজিনেক্সে পরিবর্তন করতে চান:

find / -user www-data -type f -exec chown nginx {} ;

ফাইলগুলি সন্ধান করুন এবং মুছুন

সমস্ত মিলে যাওয়া ফাইলগুলি মুছতে, ম্যাচের অভিব্যক্তিটির শেষে-মুছে ফেলা বিকল্পটি যুক্ত করুন।

আপনি নিশ্চিত করতে পারেন যে আপনি এই বিকল্পটি কেবল তখনই ব্যবহার করছেন যা আপনি মুছে ফেলতে চান এমন ফলাফলের সাথে মেলে ফলাফল। -delete বিকল্পটি ব্যবহারের আগে -delete ফাইলগুলি মুদ্রণ করা সর্বদা একটি ভাল ধারণা।

উদাহরণস্বরূপ, /var/log/ আপনি .temp থেকে .temp দিয়ে শেষ হওয়া সমস্ত ফাইল মুছতে:

find /var/log/ -name `*.temp` -delete চূড়ান্ত সতর্কতার সাথে -delete বিকল্পটি ব্যবহার করুন। -delete কমান্ড লাইনটি একটি এক্সপ্রেশন হিসাবে মূল্যায়ন করা হয় এবং আপনি যদি প্রথমে -delete বিকল্পটি যুক্ত করেন, কমান্ডটি আপনার নির্দিষ্ট করা পয়েন্টগুলির নীচে সমস্ত কিছু মুছে ফেলবে।

ডিরেক্টরিগুলির ক্ষেত্রে find করতে কেবল rmdir মতো খালি ডিরেক্টরি মুছতে পারে।

উপসংহার

বিভিন্ন বিকল্প এবং মানদণ্ড সহ কীভাবে ফাইন্ড কমান্ডটি ব্যবহার করবেন তা আমরা আপনাকে দেখিয়েছি।

এই নিবন্ধটি আপনাকে আপনার লিনাক্স সিস্টেমে ফাইলগুলি কীভাবে সনাক্ত করতে হবে তার একটি প্রাথমিক ধারণা দেওয়া উচিত। আপনি ফাইন্ড ম্যান পৃষ্ঠাটিও দেখতে পারেন এবং ফাইন্ড কমান্ডের সমস্ত অন্যান্য শক্তিশালী বিকল্পগুলি সম্পর্কে পড়তে পারেন।

টার্মিনাল সন্ধান করুন