`চিহ্নিত করা` ওয়াইল্ডকার্ডের অদ্ভুত আচরণ - কেন?


9

locate "*.png".pngপ্রত্যাশার সাথে সমাপ্ত সমস্ত ফাইল ফেরত দেয় ।

locate "test.*"কিছু ফেরত দেয় না, তবে testআমার সিস্টেমে ফাইল রয়েছে ।

locate "*test"testপ্রত্যাশার সাথে সমাপ্ত সমস্ত ফাইল ফেরত দেয় ।

locate "test*"কিছু ফেরত দেয় না, তবে testআমার সিস্টেমে এমন ফাইল রয়েছে ।

কেন ওয়াইল্ডকার্ডগুলি কেবল "শেষ হওয়ার" জন্য কাজ করছে বলে মনে হচ্ছে?


1
যেগুলি মিলে যায় test*এবং সেই ফাইলগুলি তৈরি করার পরে আপনি কি অবস্থিতটি পুনর্নির্মাণ করেছেন test.*?
ইগনাসিও ওয়াজকেজ-আব্রামস

@ ইগনাসিও ওয়াজকেজ-আব্রামস: হ্যাঁ
ভিটোরিও রোমিও

উত্তর:


12

locate "test.*" কিছু ফেরত দেয় না, তবে আমার সিস্টেমে পরীক্ষার নামক ফাইল রয়েছে।

.রেটেক্সকে একটি স্বেচ্ছাসেবক চরিত্রের মতো নয়, ডট হিসাবে বিবেচনা করা হয়, সুতরাং test.*মেলে না test, তবে test.foo

locate "test*"কিছু ফেরত দেয় না, তবে testআমার সিস্টেমে এমন ফাইল রয়েছে ।

ফাইলের পুরো পথটি সঞ্চয় করে , সুতরাং পরীক্ষার সাথে শুরু করা ফাইলগুলি খুঁজে পেতে আপনার ব্যবহার করা উচিত locate "*/test*"

শেষ পয়েন্টটি বিভ্রান্তিকর হতে পারে, যেমন locate fooসহ কিছু আবিষ্কার করে foo, তাই প্যাটার্নটি ব্যাখ্যা করা যায় *foo*। মনে হয় যে প্যাটার্নটি স্টারগুলিতে আবদ্ধ নয়, যদি প্যাটার্নটিতে ইতিমধ্যে একটি ওয়াইল্ডকার্ড থাকে।

দাবি অস্বীকার: আমি কিছু পরীক্ষা করেছি এবং এগুলি আমার সিদ্ধান্ত, আমি ম্যান পৃষ্ঠাটি উদ্ধৃত করে প্রমাণ করতে পারছি না, যা অত্যন্ত উদ্বেগজনক বলে মনে হচ্ছে।


3
আমার মধ্যে man locateআছে: --regex নির্দিষ্ট না করা থাকলে, PATTERN- এ গ্লোববিং অক্ষর থাকতে পারে। যদি কোনও প্যাটার্নে কোনও গ্লোববিং অক্ষর না থাকে তবে চিহ্নিত করুন যে প্যাটার্নটি * প্যাটার্ন * ছিল।
gniourf_gniourf
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.