লিনাক্সে ওয়াইল্ডকার্ড ব্যবহার করে বর্তমান এবং সাবডিরেক্টরিতে বারবার ফাইল খোঁজা

Shell

লিনাক্সে দক্ষ ফাইল অনুসন্ধান

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

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

আদেশ বর্ণনা
find ডিরেক্টরি অনুক্রমের মধ্যে ফাইল এবং ডিরেক্টরি অনুসন্ধান করে
-name একটি ওয়াইল্ডকার্ড প্যাটার্ন ব্যবহার করে ফাইলগুলিকে তাদের নামের সাথে মেলে৷
os.walk উপরে-নিচে বা নীচে-উপরে হেঁটে একটি ডিরেক্টরি ট্রিতে ফাইলের নাম তৈরি করে
fnmatch.fnmatch একটি ফাইলের নাম বা স্ট্রিং ওয়াইল্ডকার্ড প্যাটার্নের সাথে মেলে কিনা তা পরীক্ষা করে
param PowerShell স্ক্রিপ্ট এবং ফাংশনের জন্য পরামিতি সংজ্ঞায়িত করে
Get-ChildItem এক বা একাধিক নির্দিষ্ট স্থানে আইটেম পুনরুদ্ধার করে
-Recurse ডিরেক্টরির মাধ্যমে পুনরাবৃত্তিমূলকভাবে অনুসন্ধান করার নির্দেশ দেয়
-Filter ওয়াইল্ডকার্ড এক্সপ্রেশন ব্যবহার করে আইটেম ফিল্টার করে

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

প্রথম স্ক্রিপ্ট একটি প্রদত্ত ওয়াইল্ডকার্ড প্যাটার্নের উপর ভিত্তি করে বর্তমান ডিরেক্টরি এবং এর সাবডিরেক্টরিতে ফাইলগুলি খুঁজে পেতে একটি শেল স্ক্রিপ্ট ব্যবহার করে। স্ক্রিপ্টের দোভাষী নির্দিষ্ট করার জন্য এটি একটি শেবাং দিয়ে শুরু হয়। স্ক্রিপ্ট তারপর চেক করে যে ব্যবহারকারী if [ $# -eq 0 ] ব্যবহার করে একটি আর্গুমেন্ট হিসেবে ওয়াইল্ডকার্ড প্যাটার্ন প্রদান করেছেন কিনা। যদি না হয়, এটি ব্যবহারকারীকে সঠিক ব্যবহারের জন্য অনুরোধ করে এবং প্রস্থান করে। যদি একটি প্যাটার্ন প্রদান করা হয়, স্ক্রিপ্টটি ফাইলগুলি অনুসন্ধান করতে -টাইপ f বিকল্পের সাথে ফাইন্ড কমান্ড ব্যবহার করে এবং ওয়াইল্ডকার্ড প্যাটার্নের সাথে মেলে -নাম বিকল্পটি ব্যবহার করে। ইউনিক্স-ভিত্তিক সিস্টেমে বারবার ফাইল অনুসন্ধান করার জন্য ফাইন্ড কমান্ডটি অত্যন্ত কার্যকর। সফল সম্পাদন নির্দেশ করতে স্ক্রিপ্টটি প্রস্থান 0 দিয়ে শেষ হয়।

দ্বিতীয় স্ক্রিপ্টটি হল একটি পাইথন স্ক্রিপ্ট যা ওয়াইল্ডকার্ড প্যাটার্নের উপর ভিত্তি করে পুনরাবৃত্তভাবে ফাইলগুলি অনুসন্ধান করে। এটি os এবং sys মডিউল আমদানি করে শুরু হয়, যা অপারেটিং সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার জন্য এবং কমান্ড-লাইন আর্গুমেন্ট পরিচালনার জন্য প্রয়োজনীয়। ব্যবহারকারী একটি ওয়াইল্ডকার্ড প্যাটার্ন প্রদান করেছে কিনা স্ক্রিপ্ট চেক করে; যদি না হয়, এটি সঠিক ব্যবহার প্রিন্ট করে এবং প্রস্থান করে। os.walk ব্যবহার করে স্ক্রিপ্টকে ডিরেক্টরি ট্রি অতিক্রম করার অনুমতি দেয়। পাওয়া প্রতিটি ফাইলের জন্য, fnmatch.fnmatch ফাইলের নাম ওয়াইল্ডকার্ড প্যাটার্নের সাথে মেলে কিনা তা পরীক্ষা করে, মিলে যাওয়া ফাইল পাথগুলি মুদ্রণ করে। এই স্ক্রিপ্টটি ব্যবহারকারীদের জন্য উপযোগী যারা স্ক্রিপ্টিংয়ের জন্য পাইথন পছন্দ করেন এবং তাদের কোডে আরও নমনীয়তা এবং পাঠযোগ্যতা প্রয়োজন।

তৃতীয় স্ক্রিপ্টটি উইন্ডোজ সিস্টেমে অনুরূপ কাজ করার জন্য পাওয়ারশেল ব্যবহার করে। ওয়াইল্ডকার্ড প্যাটার্নের জন্য একটি প্যারামিটার সংজ্ঞায়িত করতে স্ক্রিপ্টটি প্যারাম বিবৃতি ব্যবহার করে। প্যাটার্ন প্রদান করা না হলে, এটি ব্যবহারকারীকে সঠিক ব্যবহারের জন্য অনুরোধ করে। Get-ChildItem cmdlet, -Recurse পতাকার সাথে মিলিত, নির্দিষ্ট স্থানে বারবার আইটেম পুনরুদ্ধার করে। -ফিল্টার প্যারামিটারটি নির্দিষ্ট ফাইলের সাথে মেলে ওয়াইল্ডকার্ড প্যাটার্ন প্রয়োগ করে। এই স্ক্রিপ্টটি Windows পরিবেশে কাজ করা ব্যবহারকারীদের জন্য আদর্শ, PowerShell-এর শক্তিশালী এবং বহুমুখী স্ক্রিপ্টিং ক্ষমতার ব্যবহার করে দক্ষতার সাথে ফাইলগুলি পরিচালনা এবং অনুসন্ধান করতে।

ফাইন্ড কমান্ড ব্যবহার করে রিকার্সিভ ফাইল অনুসন্ধান

লিনাক্সে শেল স্ক্রিপ্টিং

#!/bin/bash
# Script to recursively find files based on wildcard matching

# Check if the user has provided a wildcard pattern
if [ $# -eq 0 ]
then
  echo "Usage: $0 <wildcard-pattern>"
  exit 1
fi

# Find and print the files matching the pattern
find . -type f -name "$1"

exit 0

পুনরাবৃত্ত ফাইল অনুসন্ধানের জন্য পাইথন স্ক্রিপ্ট

পাইথন স্ক্রিপ্টিং

import os
import sys

# Check if the user has provided a wildcard pattern
if len(sys.argv) != 2:
    print("Usage: python script.py <wildcard-pattern>")
    sys.exit(1)

# Get the wildcard pattern from the command line argument
pattern = sys.argv[1]

# Walk through the directory tree
for root, dirs, files in os.walk("."):
    for file in files:
        if fnmatch.fnmatch(file, pattern):
            print(os.path.join(root, file))

পুনরাবৃত্ত ফাইল অনুসন্ধানের জন্য পাওয়ারশেল স্ক্রিপ্ট

পাওয়ারশেল স্ক্রিপ্টিং

# Check if the user has provided a wildcard pattern
param (
    [string]$pattern
)

if (-not $pattern) {
    Write-Host "Usage: .\script.ps1 -pattern '<wildcard-pattern>'"
    exit 1
}

# Get the files matching the pattern
Get-ChildItem -Recurse -File -Filter $pattern

পুনরাবৃত্ত ফাইল অনুসন্ধানের জন্য উন্নত কৌশল

পূর্বে আলোচনা করা মৌলিক পুনরাবৃত্ত ফাইল অনুসন্ধান পদ্ধতিগুলি ছাড়াও, লিনাক্সে আপনার ফাইল অনুসন্ধানের ক্ষমতাকে উন্নত করতে পারে এমন বেশ কয়েকটি উন্নত কৌশল রয়েছে। এই ধরনের একটি পদ্ধতিতে নির্দিষ্ট টেক্সট প্যাটার্ন ধারণকারী ফাইলগুলি অনুসন্ধান করতে find-এর সাথে grep কমান্ড ব্যবহার করা জড়িত। উদাহরণস্বরূপ, আপনি find ব্যবহার করতে পারেন। -টাইপ f -নাম "*.txt" -exec grep "search_text" {} + স্ট্রিং "search_text" ধারণকারী সমস্ত টেক্সট ফাইল সনাক্ত করতে। এটি বিশেষত ডেভেলপার এবং সিস্টেম অ্যাডমিনিস্ট্রেটরদের জন্য উপযোগী যাদের বড় কোডবেস বা লগ ফাইলগুলি দক্ষতার সাথে অনুসন্ধান করতে হবে।

পুনরাবৃত্ত ফাইল অনুসন্ধানের জন্য আরেকটি শক্তিশালী টুল হল fd, একটি সহজ, দ্রুত, এবং অনুসন্ধান এর ব্যবহারকারী-বান্ধব বিকল্প। fd সংবেদনশীল ডিফল্টের সাথে আসে এবং একটি স্বজ্ঞাত সিনট্যাক্স প্রদান করে। উদাহরণস্বরূপ, fd "pattern" কমান্ডটি প্যাটার্নের সাথে মিলে যাওয়া ফাইলগুলিকে বারবার অনুসন্ধান করবে এবং এটি ডিফল্টরূপে রেগুলার এক্সপ্রেশন সমর্থন করে। উপরন্তু, fd এর সমান্তরাল ফাইল সিস্টেম ট্রাভার্সালের কারণে অনেক পরিস্থিতিতে fd এর চেয়ে দ্রুত। ব্যবহারকারী-বান্ধব ইন্টারফেসের সাথে উন্নত অনুসন্ধান বৈশিষ্ট্যগুলির প্রয়োজন ব্যবহারকারীদের জন্য, fd একটি চমৎকার পছন্দ হতে পারে।

  1. আমি কিভাবে একটি নির্দিষ্ট এক্সটেনশনের সাথে ফাইলগুলি পুনরাবৃত্তভাবে অনুসন্ধান করব?
  2. find কমান্ডটি ব্যবহার করুন। -টাইপ f -নাম "*.এক্সটেনশন" যেখানে "এক্সটেনশন" হল সেই ফাইল এক্সটেনশন যা আপনি খুঁজছেন।
  3. আমি কি গত 7 দিনের মধ্যে পরিবর্তন করা ফাইলগুলি অনুসন্ধান করতে পারি?
  4. হ্যাঁ, find কমান্ডটি ব্যবহার করুন। -টাইপ করুন f -mtime -7 গত 7 দিনে পরিবর্তিত ফাইলগুলি খুঁজতে।
  5. আমি কিভাবে অনুসন্ধান থেকে নির্দিষ্ট ডিরেক্টরি বাদ দিতে পারি?
  6. ডিরেক্টরিগুলি বাদ দিতে ফাইন্ড সহ -প্রুন বিকল্পটি ব্যবহার করুন, যেমন, ফাইন্ড। -path "./exclude_dir" -prune -o -type f -name "*.txt" -print।
  7. তাদের আকার দ্বারা ফাইল অনুসন্ধান করা সম্ভব?
  8. হ্যাঁ, find ব্যবহার করুন। -টাইপ করুন f -size +100M 100MB এর থেকে বড় ফাইল খুঁজে পেতে।
  9. রেগুলার এক্সপ্রেশনের সাথে মিলে যাওয়া নামের ফাইলগুলি আমি কীভাবে অনুসন্ধান করব?
  10. খুঁজুন ব্যবহার করুন। -টাইপ f -regex ".*pattern.*" রেগুলার এক্সপ্রেশনের সাথে মিলে যাওয়া নামের ফাইলগুলি অনুসন্ধান করতে।
  11. আমি কি একাধিক অনুসন্ধানের মানদণ্ড একত্রিত করতে পারি?
  12. হ্যাঁ, আপনি find বিকল্পগুলি ব্যবহার করে মানদণ্ড একত্রিত করতে পারেন, যেমন, find. -টাইপ f -নাম "*.txt" -আকার +10M।
  13. আমি কীভাবে লুকানো ফাইলগুলি পুনরাবৃত্তভাবে অনুসন্ধান করব?
  14. খুঁজুন ব্যবহার করুন। লুকানো ফাইল অনুসন্ধান করতে f -নাম ".*" টাইপ করুন।
  15. শুধুমাত্র ডিরেক্টরি তালিকাভুক্ত করার একটি উপায় আছে?
  16. হ্যাঁ, find ব্যবহার করুন। - টাইপ d সব ডিরেক্টরি পুনরাবৃত্তভাবে তালিকাভুক্ত করতে.
  17. আমি কিভাবে পাওয়া ফাইলের সংখ্যা গণনা করতে পারি?
  18. যোগ করুন | wc -l find কমান্ডে, যেমন, find। -টাইপ f -নাম "*.txt" | wc -l।
  19. আমি কি অনুসন্ধানের গভীরতা সীমিত করতে পারি?
  20. হ্যাঁ, -maxdepth বিকল্পটি ব্যবহার করুন, যেমন, find. -maxdepth 2 -টাইপ f অনুসন্ধানটিকে 2 স্তরের গভীরে সীমাবদ্ধ করতে।

পুনরাবৃত্ত ফাইল অনুসন্ধানের জন্য উন্নত কৌশল

পূর্বে আলোচনা করা মৌলিক পুনরাবৃত্ত ফাইল অনুসন্ধান পদ্ধতিগুলি ছাড়াও, লিনাক্সে আপনার ফাইল অনুসন্ধানের ক্ষমতাকে উন্নত করতে পারে এমন বেশ কয়েকটি উন্নত কৌশল রয়েছে। যেমন একটি পদ্ধতি ব্যবহার জড়িত সঙ্গে সমন্বয়ে কমান্ড নির্দিষ্ট টেক্সট প্যাটার্ন ধারণকারী ফাইল অনুসন্ধান করতে. উদাহরণস্বরূপ, আপনি ব্যবহার করতে পারেন "সার্চ_টেক্সট" স্ট্রিং ধারণকারী সমস্ত পাঠ্য ফাইল সনাক্ত করতে। এটি বিশেষত ডেভেলপার এবং সিস্টেম অ্যাডমিনিস্ট্রেটরদের জন্য উপযোগী যাদের বড় কোডবেস বা লগ ফাইলগুলি দক্ষতার সাথে অনুসন্ধান করতে হবে।

পুনরাবৃত্ত ফাইল অনুসন্ধানের জন্য আরেকটি শক্তিশালী টুল , একটি সহজ, দ্রুত, এবং ব্যবহারকারী-বান্ধব বিকল্প . সংবেদনশীল ডিফল্টের সাথে আসে এবং একটি স্বজ্ঞাত সিনট্যাক্স প্রদান করে। উদাহরণস্বরূপ, আদেশ fd "pattern" প্যাটার্নের সাথে মিলে যাওয়া ফাইলগুলির জন্য পুনরাবৃত্তিমূলকভাবে অনুসন্ধান করবে এবং এটি ডিফল্টরূপে নিয়মিত অভিব্যক্তি সমর্থন করে। উপরন্তু, এর চেয়ে দ্রুত অনেক পরিস্থিতিতে এর সমান্তরাল ফাইল সিস্টেম ট্রাভার্সালের কারণে। ব্যবহারকারীদের জন্য একটি ব্যবহারকারী-বান্ধব ইন্টারফেসের সাথে উন্নত অনুসন্ধান বৈশিষ্ট্য প্রয়োজন, একটি চমৎকার পছন্দ হতে পারে।

পুনরাবৃত্ত ফাইল অনুসন্ধানের চূড়ান্ত চিন্তা

লিনাক্সে পুনরাবৃত্ত ফাইল অনুসন্ধানে দক্ষতা অর্জন দক্ষ ফাইল পরিচালনার জন্য অত্যন্ত গুরুত্বপূর্ণ, বিশেষত জটিল ডিরেক্টরি কাঠামোতে। যেমন টুলস লিভারেজ করে , , এবং বিকল্প মত , ব্যবহারকারীরা উল্লেখযোগ্যভাবে তাদের উত্পাদনশীলতা বাড়াতে পারেন। এই কমান্ডগুলি বোঝা এবং ব্যবহার করা সময় বাঁচাতে পারে এবং নতুন এবং অভিজ্ঞ উভয় ব্যবহারকারীর জন্য কাজগুলিকে সহজ করতে পারে, ফাইলগুলি সনাক্ত করা একটি সহজ প্রক্রিয়ায় পরিণত হয় তা নিশ্চিত করে৷