আদেশগুলি কেন বিন্দু?


14

সাধারণত, findকমান্ডগুলি দেখতে এই রকম হয়:

$ find . -name foo.txt

যখন অনুসন্ধানটি বর্তমান ডিরেক্টরি থেকে শুরু করা হবে। আমি আমার মেশিনে এটি আবিষ্কার করছি (উবুন্টু, সাইগউইন) আমি বিন্দু ছাড়াই একই ফলাফল পেয়েছি।

কেন এটি সাধারণত অন্তর্ভুক্ত করা হয়? এটি কি কেবল একটি স্পষ্টভাবে বোঝার জন্য একটি সম্মেলন, বা এটি নির্দিষ্ট সিস্টেমে প্রয়োজন / ছিল?

উত্তর:


27

কিছু সংস্করণ * এর findপ্রয়োজন হয় যে আপনি কোনও পথ আর্গুমেন্ট সরবরাহ করুন যা একটি ডিরেক্টরি যা থেকে অনুসন্ধান শুরু করা উচিত। ডট .কেবলমাত্র বর্তমান ডিরেক্টরিটিই প্রতিনিধিত্ব করে যেখানে আপনি অনুসন্ধান করতে চান।

আপনি অনুসন্ধানের মূল হতে চান এমন কোনও পথ দিয়ে আপনি এটি প্রতিস্থাপন করতে পারেন। সন্ধানের কয়েকটি সংস্করণে এটি রেখে দেওয়া যেতে পারে কারণ কোনও ডিরেক্টরি আর্গুমেন্ট উপস্থিত না থাকলে বর্তমান ডিরেক্টরি নির্দেশিত।

man findআর্গুমেন্ট সম্পর্কে বিশদ জানতে আপনি আপনার শেলটিতে চালাতে পারেন । উদাহরণস্বরূপ, আমার জন্য ব্যবহারের প্রতিশব্দ নির্দেশ করে যে পথ আর্গুমেন্টটি alচ্ছিক (বর্গক্ষেত্রের মধ্যে সবচেয়ে ভাল []):

   find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

আপনি যদি findবর্তমান ফোল্ডার থেকে শুরু হওয়া সমস্ত ফাইল এবং ডিরেক্টরিতে কোনও যুক্তি ছাড়াই আমার চালনা করে আসেন be আপনার উদাহরণটি স্পষ্টভাবে জানিয়েছে যে অনুসন্ধানটি শুরু করা উচিত .এবং -name foo.txtঅনুসন্ধান ফিল্টারগুলির মধ্যে একটি হিসাবে অভিব্যক্তিটি অন্তর্ভুক্ত করে ।

* উল্লেখযোগ্যভাবে সমস্ত বিএসডি বৈকল্পিক এবং যে কোনও কিছু পসিক্স স্ট্যান্ডার্ডের সাথে কঠোরভাবে লেগে থাকেজিএনইউ অনুসন্ধান এটি alচ্ছিক হতে দেয়।


1
আপনি কি জানেন যে কোন সংস্করণে এটির প্রয়োজন হয়? বা আমি আরও তদন্ত করতে পারে যেখানে? (গুগল খুঁজে পাওয়া শক্ত)
এরিক উইলসন

ডিফল্ট অনুসন্ধানের পথ সম্পর্কে আকর্ষণীয়।
rozcietrzewiacz

2
আমি বিশ্বাস করি যে বেশিরভাগ বিএসডি ভেরিয়েন্টগুলির জন্য একটি পথ আর্গুমেন্টের প্রয়োজন হয় যখন জিএনইউতে এটি isচ্ছিক। বিভিন্নতা থাকতে পারে।
কালেব

2
নোট করুন যে কমপক্ষে ২০০ P এর পসিক্স স্ট্যান্ডার্ড স্পেসিফিকেশনগুলি এটির জন্য pathপ্রয়োজনীয় যুক্তি
কালেব

1
নীট বাছাই করুন: "আপনি এটি যে কোনও পথের সাথে এটি [বিন্দু] প্রতিস্থাপন করতে পারেন" - " আপনি যে কোনও পথ চান", যেহেতু আপনি বলতে পারেন find dir1 dir2 dir3 -name foo.txt
জি-ম্যান

5

উদাহরণস্বরূপ অনুসন্ধানের এআইএক্স সংস্করণটির জন্য পথ প্রয়োজন এবং একটি সরবরাহ না করা থাকলে চলবে না run

# oslevel -s
5300-08-03-0831
# find -name bob
Usage: find [-H | -L] Path-list [Expression-list]

# oslevel -s
6100-03-01-0921
# find -name bob
Usage: find [-H | -L] Path-list [Expression-list]

যদিও কয়েকটি এআইএক্স মেশিনে একটি জিএনইউ ইনস্টল থাকতে পারে, যা পথ ছাড়াই মোকাবেলা করতে পারে,

# oslevel -s
6100-03-01-0921
# /opt/freeware/bin/find -version
GNU find version 4.1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.