খোঁজ লিনাক্স শেলের কমান্ড আপনাকে ফাইল সিস্টেমে ফাইল অনুসন্ধান করতে দেয়। এটি নাম, ব্যবহারকারীর অনুমতি এবং আকার দ্বারা ফাইলগুলি খুঁজে পেতে পারে। খোঁজ কমান্ড পাওয়া যায় এমন ফাইলগুলিতেও কাজ করতে পারে।
কমান্ড সিনট্যাক্স খুঁজুন
খোঁজ-এর জন্য সিনট্যাক্স কমান্ড নিম্নরূপ:
find [OPTIONS] [PATH] [EXPRESSION]
কোথায়:
- [বিকল্প] অনুসন্ধানের আচরণ নির্ধারণ করার জন্য নিচের সারণী থেকে বিকল্পগুলি হল
- [PATH] অনুসন্ধানের সূচনা বিন্দু
- [এক্সপ্রেশন] মিলিত ফাইলগুলি খুঁজে বের করার জন্য পরীক্ষাগুলি এবং যে কোনও পদক্ষেপ যা পাওয়া ফাইলগুলিতে নেওয়া উচিত তা সংজ্ঞায়িত করে
বিকল্পগুলি
এখানে সাধারণত ব্যবহৃত বিকল্প আছে খোঁজে-এর জন্য কমান্ড, ম্যানুয়াল থেকে অভিযোজিত:
-P | কখনও প্রতীকী লিঙ্ক অনুসরণ করবেন না। এটি ডিফল্ট আচরণ |
-L | সিম্বলিক লিঙ্কগুলি অনুসরণ করুন। যখন ফাইলগুলি সম্পর্কে তথ্য পরীক্ষা করে বা প্রিন্ট করে, ব্যবহৃত তথ্যগুলি ফাইলের বৈশিষ্ট্যগুলি থেকে নেওয়া হবে যেখানে লিঙ্কটি নির্দেশ করে, লিঙ্ক থেকে নয় |
-H | কমান্ড লাইন আর্গুমেন্ট প্রক্রিয়া করার সময় ছাড়া প্রতীকী লিঙ্কগুলি অনুসরণ করবেন না |
অভিব্যক্তি
খোঁজ থেকে এই কিছু সাধারণ বিবৃতি ম্যানুয়াল যা এক্সপ্রেশন, তৈরি করতে ব্যবহার করা যেতে পারে যা ফাইলের মিলের জন্য পরীক্ষা করে এবং ঐচ্ছিকভাবে তাদের উপর ক্রিয়া সম্পাদন করে:
পরীক্ষা (অনুসন্ধান শর্তাবলী) | |
---|---|
-খালি | খালি ফাইল খুঁজুন |
-নির্বাহযোগ্য | নির্বাহযোগ্য এবং অনুসন্ধানযোগ্য ডিরেক্টরিগুলির সাথে মেলে |
-গ্রুপ নাম | ফাইলটি নাম সহ গ্রুপের অন্তর্গত |
-mtime n | ফাইল ডেটা শেষবার সংশোধন করা হয়েছিল তার চেয়ে কম, বেশি বা ঠিক n*24 ঘন্টা আগে |
-নাম প্যাটার্ন | ফাইলের নামের ভিত্তি (প্রধান ডিরেক্টরি সরানো হয়েছে) প্যাটার্ন প্যাটার্ন মেলে |
-পাথ প্যাটার্ন | ফাইল পাথ প্যাটার্ন প্যাটার্ন এর সাথে মেলে |
-পাঠযোগ্য | বর্তমান ব্যবহারকারীর দ্বারা পাঠযোগ্য ফাইলের সাথে মেলে |
-সাইজ n | ফাইল স্থানের কম, বেশি বা ঠিক n ইউনিট ব্যবহার করে, রাউন্ডিং আপ করে (উপলব্ধ ইউনিটগুলির জন্য নীচের টেবিলটি দেখুন) |
-টাইপ c | ফাইলটি c প্রকারের (c এর মানগুলির জন্য নীচের সারণী দেখুন ) |
-ব্যবহারকারী নাম | ফাইলের মালিকানা নাম ব্যবহারকারী |
ক্রিয়া | |
---|---|
-প্রিন্ট | ফাইলের নাম আউটপুট করে (ডিফল্ট অ্যাকশন) |
-ছাঁটা | Ff ফাইলটি একটি ডিরেক্টরি, এতে নামবেন না |
-গভীরতা | প্রতিটি ডিরেক্টরির বিষয়বস্তু ডাইরেক্টরির আগে প্রসেস করুন |
-মুছে ফেলুন | মিলে যাওয়া ফাইল মুছুন। -ডিলিট অ্যাকশনটিও একটি বিকল্পের মতো কাজ করে (যেহেতু এটি বোঝায় -গভীরতা) |
-exec কমান্ড | কমান্ড চালান |
-execdir command | লাইক -exec, কিন্তু নির্দিষ্ট কমান্ডটি মিলিত ফাইল ধারণকারী সাবডিরেক্টরি থেকে চালানো হয় |
-ঠিক আছে কমান্ড | লাইক -exec কিন্তু প্রথমে ব্যবহারকারীকে জিজ্ঞাসা করুন। |
-ওকডির কমান্ড | লাইক -execdir কিন্তু প্রথমে ব্যবহারকারীকে একইভাবে জিজ্ঞাসা করুন যেমন -ঠিক আছে। |
-printf ফরম্যাট | ফরম্যাটে ফাইলের বিবরণ প্রিন্ট করুন |
এক্সপ্রেশনে অপারেটর
অপারেটরগুলিকে একটি অভিব্যক্তিতে আইটেমগুলিকে একসাথে চেইন করতে ব্যবহার করা যেতে পারে:
-o | বা |
-a | এবং (কোন অপারেটর সরবরাহ না করলে এক্সপ্রেশনের মধ্যে ডিফল্ট অপারেটর |
ফাইল খোঁজার জন্য বিকল্প এবং অভিব্যক্তির সম্পূর্ণ তালিকার জন্য, আপনি নিম্নলিখিতটি চালাতে পারেন:
man find
কমান্ডের উদাহরণ খুঁজুন
বিকল্প, অভিব্যক্তি এবং ক্রিয়াগুলিকে মিলিত ফাইলগুলি বা জটিল ক্রিয়াকলাপগুলি তালিকাভুক্ত করার জন্য সহজ অনুসন্ধান ক্রিয়াকলাপ তৈরি করতে একত্রিত করা যেতে পারে যা জটিল অবস্থার দ্বারা ফাইলগুলি খুঁজে পেতে এবং একটি ক্রিয়া সম্পাদন করতে পারে। উদাহরণের জন্য নীচে দেখুন:
ফাইলের নাম অনুসারে ফাইল খুঁজুন
এই উদাহরণটি myfile নামের সমস্ত ফাইল খুঁজে পায় ডিরেক্টরিতে /home/screw :
find /home/screw -name myfile
প্রকার দ্বারা অনুসন্ধান করুন
উপরের কমান্ডটি সব মিলে যাওয়া ফাইল- সহ ফিরিয়ে দেবে ডিরেক্টরি, লিঙ্ক, এবং ডিভাইস - ফাইল সিস্টেমের সবকিছু।
-টাইপ f অভিব্যক্তি অনুসন্ধানকে ফাইল-এ সীমাবদ্ধ করে কেবল. myfile নামের ফাইলগুলি অনুসন্ধান করতে :
find /home/screw -type f -name myfile
অথবা, শুধুমাত্র ডিরেক্টরির জন্য অনুসন্ধান করুন:
find /home/screw -type d -name myfile
উপলব্ধ প্রকারগুলি হল:
b | ব্লক (বাফার) বিশেষ |
c | অক্ষর (আনবাফার করা) বিশেষ |
d | ডিরেক্টরি |
p | নামযুক্ত পাইপ (FIFO) |
f | নিয়মিত ফাইল |
l | প্রতীকী লিঙ্ক; এটি কখনই সত্য নয় যদি -L বিকল্প বা -অনুসরণ বিকল্পটি কার্যকর থাকে, যদি না প্রতীকী লিঙ্কটি ভাঙ্গা হয় |
s | সকেট |
কেস সংবেদনশীলতা
-নাম বিকল্পটি কেস সংবেদনশীল – কেস সংবেদনশীলতা ছাড়াই অনুসন্ধান করতে -iname ব্যবহার করুন :
find /home/screw -iname mYFiLe
ওয়াইল্ডকার্ড এবং রেজেক্স ব্যবহার করে এক্সটেনশনের মাধ্যমে ফাইল খুঁজুন
আপনি ওয়াইল্ডকার্ড ব্যবহার করতে পারেন (* ) ফাইলের নামে, যা আপনাকে ফাইল এক্সটেনশন দ্বারা অনুসন্ধান করতে দেয়:
find -L /home/screw -name '*.pdf'
উপরোক্তটি .pdf দিয়ে সমস্ত ফাইল অনুসন্ধান করবে এক্সটেনশন উদ্ধৃত অনুসন্ধান প্যাটার্নে রেজেক্স থাকতে পারে।
নাম বা এক্সটেনশন দ্বারা ফাইল বাদ দেওয়া
-না অপারেটর নাম বা প্যাটার্ন দ্বারা ফাইলগুলি বাদ দিতে ব্যবহার করা যেতে পারে, মেলে না এমন সমস্ত ফলাফল ফিরিয়ে দেয়:
find /home/screw -type f -not -name '*.pdf'
ফলাফল থেকে সম্পূর্ণ ডিরেক্টরি বাদ দিন
-প্রুন ব্যবহার করুন মিলিত পাথ এবং তাদের বিষয়বস্তু বাদ দেওয়ার বিকল্প। নিচের উদাহরণটি /home/screw/junk বাদ দেবে ফলাফল থেকে ডিরেক্টরি:
find /home/screw -path /home/screw/junk -prune -o -print
আকার অনুসারে ফাইল অনুসন্ধান করুন
এই উদাহরণটি 500 কিলোবাইটের কম সমস্ত ফাইলের জন্য অনুসন্ধান করে:
find /home/screw -type f -size -500k
এটি দুটি আকারের শর্ত অতিক্রম করে 100 থেকে 200 কিলোবাইটের মধ্যে ফাইল খুঁজে পাবে:
find /home/screw -type f -size +100k -size -200k
আকার অনুসারে অনুসন্ধানের জন্য উপলব্ধ ইউনিটগুলি হল:
b | 512-বাইট ব্লক (কোনও প্রত্যয় ব্যবহার না হলে এটি ডিফল্ট) |
c | বাইট |
w | টু-বাইট শব্দ |
k | কিবিবাইট (KiB, 1024 বাইটের একক) |
M | মেবিবাইট (MiB, 1024 * 1024 =1048576 বাইটের একক) |
G | গিবিবাইট (GiB, 1024 * 1024 * 1024 =1073741824 বাইটের একক) |
পরিবর্তন বা অ্যাক্সেসের তারিখ
নিচের উদাহরণে সবগুলি .txt পাওয়া যায় ফাইলগুলি গত 14 দিনে পরিবর্তিত হয়েছে:
find /home/screw -name '*.txt' -mtime 14
শেষ অ্যাক্সেস করে অনুসন্ধান করতে এর পরিবর্তে পরিবর্তন তারিখ, -atime ব্যবহার করুন -mtime এর পরিবর্তে বিকল্প .
আপনি একটি চিহ্নও যোগ করতে পারেন (+ অথবা – ) প্রদত্ত ব্যবধানের চেয়ে বেশি বা কম পরিবর্তিত ফাইলগুলি অনুসন্ধান করতে - এই উদাহরণটি 14 দিনের বেশি আগে পরিবর্তিত ফাইলগুলিকে ফিরিয়ে দেবে৷
find /home/screw -name '*.txt' -mtime +14
সময়ের একক হিসাবে দিনের পরিবর্তে মিনিট ব্যবহার করতে, আপনি -mmin বিকল্প করতে পারেন -আমিন এর পরিবর্তে -mtime এবং -atime .
যথারীতি, মিক্স এবং ম্যাচ করার জন্য আরও অনেক বিকল্প রয়েছে, যা ম্যানুয়ালটিতে উপলব্ধ, চালানোর মাধ্যমে উপলব্ধ:
man find
মালিক ব্যবহারকারী/গ্রুপ
/home/screw-এ রুটের মালিকানাধীন সমস্ত ফাইল খুঁজে পেতে ডিরেক্টরি, রান:
find /home/screw -user root
অনুমতি
নিম্নোক্ত কমান্ড গ্লোবাল রিড/রাইট পারমিশন সহ সমস্ত ফাইল খুঁজে পাবে:
find /home/screw -perm 777
chmod-এ আমাদের নিবন্ধ দেখুন কমান্ড এবং এটি কি করে।
কম্বিনেশন
সার্চ এক্সপ্রেশনের যেকোনো সমন্বয় ব্যবহার করা যেতে পারে। যদি তাদের মধ্যে কোনো অপারেটর অন্তর্ভুক্ত না করা হয়, তাহলে ধরে নেওয়া হবে যে একটি ফাইলের মিল হওয়ার জন্য উভয় শর্তই পূরণ করতে হবে (যেমন, AND অপারেটর ডিফল্ট)।
এই উদাহরণটি 500kb-এর চেয়ে কম গত 14 দিনে তৈরি করা সমস্ত পাঠ্য ফাইলের জন্য অনুসন্ধান করে:
find /home/screw -name '*.txt' -mtime 14 -type f -size -500k
ফাউন্ড ফাইলে অ্যাকশন
ডিফল্টরূপে, ফাইন্ড কমান্ড ফাইন্ড অপারেশনের ফলাফল প্রিন্ট করবে (-প্রিন্ট কল করার মতই কর্ম)।
find /home/screw -name myfile -print
ফলাফল বিন্যাস কাস্টমাইজ করা
আপনি ফলাফলের আউটপুট কাস্টমাইজ করতে পারেন কোনো পাওয়া ফাইল সম্পর্কে অতিরিক্ত তথ্য অন্তর্ভুক্ত করতে. এই উদাহরণটি ফাইলের নাম মুদ্রণ করে, একটি ড্যাশ দ্বারা অনুসরণ করে, বাইটে ফাইলের আকার অনুসরণ করে:
find /home/screw -name '*.txt' -printf '%f - %s bytes'
আউটপুট কাস্টমাইজ করার জন্য অনেক ভেরিয়েবল ব্যবহার করা যেতে পারে, ফাইলের আকার থেকে শুরু করে ফাইল পরিবর্তন এবং অ্যাক্সেসের সময়গুলির জন্য পৃথক তারিখের ক্ষেত্রে – সম্পূর্ণ তালিকার জন্য ম্যানুয়ালটি দেখুন৷
ফাইলে ফলাফল লেখা
আপনার খুঁজে-এর ফলাফল পুনঃনির্দেশ করুন একটি টেক্সট ফাইলে অপারেশন:
find /home/screw -name myfile > find_results.txt
মোছা হচ্ছে
-মুছে দিন অ্যাকশন মিলে যাওয়া ফাইল মুছে ফেলবে (নিশ্চিতকরণ ছাড়াই, তাই সাবধান!):
find /home/screw -name '*.junk' -delete
-exec-এর সাহায্যে কমান্ড নির্বাহ করা হচ্ছে / *-execdir *
আপনি প্রতিটি find এর বিরুদ্ধে যেকোনো শেল কমান্ড চালাতে পারেন -exec ব্যবহার করে ফলাফল কর্ম:
find /home/screw -name '*.txt' -exec ls -la {} ';'
-exec বর্তমান কার্যকারী ডিরেক্টরি থেকে কমান্ডটি কার্যকর করবে। পাওয়া ফাইলের অবস্থান থেকে কমান্ড কার্যকর করতে, -execdir ব্যবহার করুন পরিবর্তে:
find /home/screw -name '*.txt' -execdir ls -la {} ';'
উপরের দুটি উদাহরণে, ls -la প্রতিটি ফলাফলের বিরুদ্ধে চালানো হয়। কোঁকড়ানো বন্ধনী {} Find কমান্ডের ফলাফল এবং ';' দিয়ে প্রতিস্থাপিত হবে ls-এর কমান্ড লাইন আর্গুমেন্ট বন্ধ করে কমান্ড যাতে খোঁজে তারা কোথায় শেষ জানেন।
-ঠিক আছে দিয়ে নিশ্চিতকরণের জন্য অনুরোধ করা হচ্ছে / -ওকডির
-ঠিক আছে কর্ম -exec এর মতই কাজ করে কর্ম, কিন্তু প্রদত্ত কমান্ড চালানোর আগে এটি আপনাকে জিজ্ঞাসা করে। আপনি যদি ফাইলগুলি মুছতে চান তবে এটি কার্যকর, তবে প্রতিটি ফাইল মুছে ফেলার আগে জিজ্ঞাসা করা হবে:
find /home/screw -name '*.txt' -ok rm {} ';'
-ওকডির পাওয়া ফাইলের অবস্থান থেকেও নির্দেশ দেয় কিন্তু কমান্ড চালায়:
find /home/screw -name '*.txt' -okdir rm {} ';'