fd হল find কমান্ডের একটি সহজ বিকল্প। এটি একটি ট্রানকেটেড সিনট্যাক্স এবং একটি সংক্ষিপ্ত কমান্ড স্ট্রাকচার ব্যবহার করে আপনার টাইপ করা কমান্ডগুলো ছোট এবং পয়েন্ট-টু-পয়েন্ট রাখতে। যাইহোক, সেই verbosity-এর অভাব যা fd কে টাইপ করা সহজ করে তোলে, সেটি বোঝাকে আরও কঠিন করে তোলে। fd ডিফল্ট find কমান্ডের চেয়ে প্যাটার্ন ম্যাচিংও দ্রুত চালায়। লিনাক্স এবং macOS-এ fd কীভাবে ব্যবহার করবেন শিখুন।
লিনাক্সে fd ইনস্টল করুন
fd অনেক সিস্টেমে ডিফল্টরূপে শিপ করা হয় না। আপনাকে আপনার পছন্দের প্যাকেজ ম্যানেজার ব্যবহার করে অ্যাপ্লিকেশন ডাউনলোড ও ইনস্টল করতে হবে, এবং তারপর আপনি টার্মিনাল থেকে এটি রান করতে পারবেন।
Ubuntu
এটি উবুন্টু ডيسكو ডিংগো ১৯.০৪-এ শিপ করবে, কিন্তু অন্যথায় আপনাকে এটি ডাউনলোড ও ইনস্টল করতে হবে। উবুন্টু এবং অন্যান্য ডেবিয়ন-ভিত্তিক লিনাক্স ডিস্ট্রোর জন্য, আপনি নিচের কমান্ডগুলো চালাতে চাবেন প্রোগ্রাম ডাউনলোড ও ইনস্টল করতে।
wget https://github.com/sharkdp/fd/releases/download/v7.3.0/fd-musl_7.3.0_amd64.deb sudo dpkg -i fd-musl_7.3.0_amd64.deb
আপনার ৩২-বিট ভার্সন বা অন্য বিল্ড দরকার হলে, fd-এর GitHub রিলিজ পেজ থেকে ডাউনলোড করুন।
Debian
ডেবিয়ন বাস্টার বা নতুন ভার্সনে, আপনি অফিশিয়াল ডেবিয়ন-মেইনটেইনড রিপোজিটরি থেকে fd ইনস্টল করতে পারেন।
sudo apt-get install fd-find
Fedora
ফেডোরা ২৮ থেকে, fd অফিশিয়াল প্যাকেজ ভার্সন থেকে ইনস্টল করা যায়।
dnf install fd-find
Arch Linux
একইভাবে, আর্চ ইউজাররা অফিশিয়াল রিপো থেকে fd গ্র্যাব করতে পারেন:
pacman -S fd
Gentoo Linux
Gentoo ইউজাররা fd ebuild ডাউনলোড করতে নিচের কমান্ডটি ব্যবহার করতে পারেন:
emerge -av fd
macOS
আপনি যদি macOS চালান, Homebrew ইনস্টল করুন, তারপর fd ইনস্টল করতে নিচের কমান্ডটি ব্যবহার করুন:
brew install fd
লিনাক্সে fd ব্যবহার করুন
fd কমান্ডের বেসিক স্ট্রাকচার হচ্ছে fd pattern find . -iname 'pattern'-এর চেয়ে।
নাম দিয়ে ফাইল সার্চ করতে নিচের কমান্ডটি ব্যবহার করুন:
fd filename
এটি প্রিসেট ওয়ার্কিং ডিরেক্টরির ভিতর, সাবডিরেক্টরিসহ সার্চ করে। একটি নির্দিষ্ট ডিরেক্টরির ভিতর সার্চ করতে, আপনার সার্চ টার্মের পরে সেটি নির্দিষ্ট করুন:
fd filename /path/to/search
রেজাল্টের ওপর কমান্ড এক্সিকিউট করুন
find-এর মতো, fd-এ একটি ফাংশনালিটি রয়েছে যেটি খুঁজে পাওয়া ফাইলগুলো অন্য একটি কমান্ডে পাস করে এক্সিকিউশনের জন্য। যেখানে find find . -iname pattern -exec command ব্যবহার করে, fd -x ফ্ল্যাগ ব্যবহার করে:
fd -e zip -x unzip
এই কমান্ড ডিরেক্টরিতে থাকা সকল zip ফাইলকে unzip কমান্ডে পাস করবে। আপনি এক্সিকিউট কমান্ডের "фраза"র ভিতরে নিচের সিম্বলগুলো ব্যবহার করতে পারেন ইনফরমেশন নির্দিষ্টভাবে পাস করার জন্য।
{}: একটি প্লেসহোল্ডার যা সার্চ রেজাল্টের পাথ দিয়ে রিপ্লেস হবে (files/images/portrait.jpg)।{/}: একটি প্লেসহোল্ডার যা রেজাল্টের শুধু ফাইলনেম দিয়ে রিপ্লেস হবে, যাকে UNIX aficionados basename বলেন (portrait.jpg)।{//}: প্লেসহোল্ডার যা খুঁজে পাওয়া আইটেমের প্যারেন্ট ডিরেক্টরি দিয়ে রিপ্লেস হবে (files/images)।{.}: প্লেসহোল্ডার যা এক্সটেনশন ছাড়া ফাইলনেমের পাথে রিপ্লেস হবে (files/images/portrait)।{/.}: প্লেসহোল্ডার যা খুঁজে পাওয়া আইটেমের basename এক্সটেনশন ছাড়া দিয়ে রিপ্লেস হবে (portrait)।
উপরের উদ্ধৃত দুটি প্লেসহোল্ডার সিম্বল ব্যবহার করে নিচের উদাহরণটি বিবেচনা করুন:
fd -e flac -x ffmpeg -i {} -c:a libopus {.}.opus
অন্যান্য উপকারী fd ফ্ল্যাগগুলো
-e: শুধু ফাইল এক্সটেনশন সার্চ করুন, কোনো সেপারেটিং ডট ছাড়া।-E pattern: নিচের প্যাটার্ন মিল করে যেসব রেজাল্ট বাদ দিন।--changed-newer-than date|duration: ফাইল মডিফিকেশন সinse টাইমের ওপর ভিত্তি করে রেজাল্ট ফিল্টার করুন। এটি শুধু নির্দিষ্ট তারিখের পরে মডিফিকেশন ডেট वाले ফাইল দেখাবে। টাইম একটি ডুরেশন হিসেবে দেয়া যেতে পারে যা বর্তমান মুহূর্ত থেকে পিছনে কাউন্ট করে (10h,1d,35min) বা একটি স্পেসিফিক টাইম সেট করা যেতে পারে ("YYYY-MM-DD HH:MM:SS")।--changed-older-than date|duration:--changed-newer-এর মতো কিন্তু নির্দিষ্ট তারিখ বা ডুরেশনের আগে এডিট করা ফাইল দেখাবে, পরে না।-t: শুধু নির্দিষ্ট টাইপের ফাইল দেখান (-tf ফাইল জন্য, -td ডিরেক্টরি জন্য, -tx এক্সিকিউটেবল জন্য, -tl সিমলিংক জন্য, -te খালি ফাইল জন্য)।-p: শুধু ফাইলনেমে না, পুরো পাথনেমে সার্চ করুন।-s: কেস-সেনসিটিভিটি ফোর্স করুন। ডিফল্টরূপে, fd কেস ইগনোর করে যদি না সার্চ প্যাটার্নে আপারকেস লেটার টাইপ করা থাকে।-H: রেজাল্টে হিডেন ফাইল এবং ডিরেক্টরি দেখান।-L: সিমলিংকড ডিরেক্টরিতে লিংক ফলো করুন।
fd find কমান্ডের জন্য একটি ভালো বিকল্প। আপনার অভিজ্ঞতা যদি হয় যে "find" কমান্ড ব্যবহার করা কঠিন, তবে fd ব্যবহার করে আপনার ভাগ্য ভালো হয়তে পারে। এটা ট্রাই করুন এবং আমাদের জানান এটি আপনার জন্য উপকারী কিনা।