উত্তর:
*.*
পুরানো উইন্ডোজ / ডস সিস্টেমের অধীনে ব্যাখ্যাএখানে তাত্পর্যটি ইউনিক্স / লিনাক্সের চেয়ে উইন্ডোজ / ডসের সাথে সম্পর্কিত more পুরানো উইন্ডোজ / ডস সিটস্টেমগুলিতে এটি একটি 'ওয়াইল্ডকার্ড' প্যাটার্ন ছিল। ওয়াইল্ডকার্ড নিদর্শনগুলি ইউনিক্স গ্লোবগুলির সাথে একইভাবে ফাইলের সাথে মিলের জন্য ব্যবহৃত হত। *.*
ওয়াইল্ডকার্ড সাধারণভাবে যে কোন ফাইল মেলাতে ব্যবহার করা হয়।
ইউনিক্স গ্লোবের মতো, ফাইলটি কোনও ফাইলের *
নামের সাথে বর্ণের যে কোনও অনুক্রমের সাথে মেলে, যেমন *
তার নিজের মতো কোনও ফাইলের সাথেও মিলবে। তবে যে *.*
কোনও ফাইলনামের সাথে খুব মিলে যাওয়ার কারণ হ'ল এই ওয়াইল্ডকার্ডগুলি যেভাবে কাজ করে তার মধ্যে পার্থক্য রয়েছে। এই নিবন্ধ অনুযায়ী :
একটি বিন্দু বাদে অন্য কোনও অক্ষর যা তীরচিহ্নের পরে আসে তার কোনও প্রভাব হয় না, যেহেতু নক্ষত্রটি কার্সারটিকে 12 অবস্থানে নিয়ে যায়, যে বিন্দুতে বিন্দু ব্যতীত পার্সের কোনও পরিবর্তন হয় না, যা শেষ তিনটি অবস্থান সাফ করে এবং কার্সারকে সরিয়ে দেয় moves
এই আচরণের (ইউনিক্স দৃষ্টিকোণ থেকে কিছুটা বিশৃঙ্খলা) এর অর্থ হ'ল একটি অনুসরণকারী বিন্দু *
আসলে কোনও বিন্দুর সাথে মেলে না, তবে আপনাকে প্যাটার্নে আরও অক্ষর যুক্ত করার মঞ্জুরি দেওয়ার একটি হ্যাকিশ উপায়। এর অর্থ এই যে *
শেষ তিনটি অবস্থানে যেকোন কিছু মিলবে।
যখন আপনি যে বিবেচনা সিনট্যাক্স উইন্ডোজ 95 যা প্রয়োজনীয় আগে ডস এবং পুরানো উইন্ডোজ সিস্টেমে ব্যবহার করা হয়েছিল এটি একটি সামান্য আরো ইন্দ্রিয় তোলে 8.3 ফাইলের নামের । এই ফাইলের নামগুলিতে কেবল একটি বিন্দু এবং বিন্দু অনুসরণ করে সর্বাধিক তিনটি অক্ষর থাকার অনুমতি ছিল। বেশিরভাগ, সিস্টেমে সমস্ত ফাইলের তিনটি চরিত্রের এক্সটেনশন না থাকলেও (প্রযুক্তিগতভাবে একটি সংক্ষিপ্ত বা কোনও এক্সটেনশনের অনুমতি দেওয়া হয়নি), তাই আমি কোনওভাবেই অনুমান করি যে *.*
কোনও ফাইলের সাথে ম্যাচ করার জন্য এটি ব্যবহার করা বুদ্ধিমান ছিল (কমপক্ষে একটি ওয়ার্পযুক্ত উইন্ডোজি লজিক দৃষ্টিকোণ থেকে )।
*.*
ইউনিক্স শেলগুলির ব্যাখ্যাইউনিক্স শেলগুলিতে, অন্যরা যেমন নির্দেশ করেছে, এটি একটি 'পথের নাম সম্প্রসারণ' বা 'গ্লোব' উপস্থাপন করে। *
নিম্নলিখিত এটা উপেক্ষা করা হচ্ছে অক্ষর হতে না শেষ আচরণ কোনো বিজোড় জাম্পিং আছে এবং এইভাবে নেই। *.*
প্যাটার্নটি বিন্দুযুক্ত কোনও ফাইলের নামের সাথে মিলবে (শুরু বাদে)। যেমন একটা ইউনিক্স / লিনাক্স সিস্টেম অনেক ফাইল এই হ 'ল যেকোনো ফাইল মেলে না হবে না একটি এক্সটেনশন আছে (বা অন্যথায় যেহেতু খুব অনুমতি দেওয়া হয় একটি বিন্দু ধারণ)।
কারণ *.*
কারণ শুরুতে একটি বিন্দু স্থাপন কিভাবে ফাইল 'গোপন' করা হয় এবং লুকানো ফাইল ডিফল্টরূপে globs থেকে বাদ দেওয়া হয় হয় ইউনিক্স উপর ফাইলের নামের শুরুতে একটি বিন্দু মিলে নয়। তাদের একটি পসিক্স শেলের সাথে মেলে দেওয়ার জন্য, বিন্যাসটির শুরুতে একটি বিন্দু স্পষ্টভাবে দেওয়া দরকার। ইন শেল বিকল্প সেট করতে পারেন করা বা পরিবর্তনশীল উপযুক্তভাবে নির্ধারণ করা যাবে, কিন্তু এই আরেকটি প্রশ্ন আছে!bash
dotglob
GLOBIGNORE
এটি glob
ব্যাশে রয়েছে, নীচে আমি ব্যাশ ম্যানুয়াল থেকে উদ্ধৃত করেছি:
বাশ - জিএনইউ বোর্ন-আবার শেল
*
নাল স্ট্রিং সহ যে কোনও স্ট্রিংয়ের সাথে মেলে। যখন গ্লোবস্টারের শেল বিকল্পটি সক্ষম করা থাকে এবং কোনও পথের
*
নাম সম্প্রসারণ প্রসঙ্গে*s
ব্যবহৃত হয়, তখন একক প্যাটার্ন হিসাবে ব্যবহৃত দুটি সংলগ্ন সমস্ত ফাইল এবং শূন্য বা আরও বেশি ডিরেক্টরি এবং সাব ডিরেক্টরিতে মিলবে। যদি একটি দ্বারা অনুসরণ করা হয়/
, দুটি সংলগ্ন*s
কেবল ডিরেক্টরি এবং উপ-ডিরেক্টরিগুলির সাথে মিলবে।
এই ক্ষেত্রে, তার নামের সাথে *.*
একটি বিন্দুযুক্ত যে কোনও ফাইলের সাথে মিল দিন .
।
আপনি আরও বিশদ এখানে দেখতে পারেন ।
নক্ষত্রটি শেল ভাষার *
একটি glob
ভাষা। শেল কমান্ড ভাষা থেকে উদ্ধৃতি :
অ্যাসিরিস্টক (
'*'
) হল এমন একটি প্যাটার্ন যা নাল স্ট্রিং সহ যে কোনও স্ট্রিংয়ের সাথে মেলে।
তবে .
শেল অপশনটি dotglob
সেট না করা থাকলে এটি ফাইলের নামের সাথে মেলে না ।
আপনি যখন ব্যবহার করেন *.*
, এটি এমন কোনও কিছুর সাথে মেলে:
.
.
আপনি ম্যানুয়ালটিতে ফাইলের নাম প্রসারকেও উল্লেখ করতে পারেন ।
উইন্ডোজ থেকে আসা প্রচুর লোকেরা *.*
সমস্ত ফাইলের জন্য ভাবেন । উইন্ডোজ, এটা হয়। ইউনিক্স-এ, এটি সমস্ত ফাইল যা তাদের নামে কমপক্ষে 1 ডট থাকে। *
নিজে নিজে উইন্ডোজে ঠিকঠাক কাজ করে (প্রথম দিকে ডস থেকে শুরু করে ডেট করে); তবে পুরাতন পাঠ্যপুস্তকগুলি প্রকাশিত *.*
এবং এটি ভাঙ্গা একটি কঠিন অভ্যাস বলে মনে হচ্ছে।
*
ফাইল নাম সম্প্রসারণ করতে শেল দ্বারা ব্যবহৃত একটি ওয়াইল্ডকার্ড যা "গ্লোব্বিং" নামে পরিচিত। *
কিছুই (যেমন, *.*
মিলবে file.
ইত্যাদি) সহ কিছুতে প্রসারিত হয় । অন্যান্য সাধারণ ওয়াইল্ডকার্ড ?
যা কোনও একক চরিত্রের সাথে মেলে।
নিয়মিত অভিব্যক্তিতে একই অক্ষর (যেমন গ্রেপের সাথে ব্যবহৃত হিসাবে) ব্যবহার করে এই ওয়াইল্ডকার্ডগুলির ক্রিয়াকে বিভ্রান্ত করবেন না।
এটি স্টার ডট-স্টার - কমপক্ষে, ডস (এবং পরে অবশ্যই উইন্ডোজ) বিশ্বে। ডস-এ, ডটের .
বিশেষ জাদুকরী অর্থ রয়েছে, কারণ ফাইলের নামগুলি একটি আট-চরিত্রের বেস (পরে প্রসারিত হয়, তবে আসুন পুরানো স্কুলটি থাকি) এবং একটি তিন-অক্ষরের এক্সটেনশন (যা ফাইলের ধরণের সংজ্ঞা দেয়)। ইউনিক্সে ফাইলের ধরণটি সাধারণত ফাইলের (বা অন্য যাদু) প্রথম দুটি বাইট দ্বারা সংজ্ঞায়িত করা হয় এবং এক্সটেনশানটি তথ্যবহুল হলেও এর বেশি অর্থ হয় না। বাদে যখন এই সমস্ত অস্পষ্ট হয়ে গেছে।
সুতরাং, ইউনিক্সে, এর কোনও বিশেষ অর্থ নেই। তারকাচিহ্নটি ইউনিক্স শেলের একটি "গ্লোববিং" চরিত্র এবং যেকোন সংখ্যক অক্ষরের (শূন্য সহ) ওয়াইল্ডকার্ড। ?
হ'ল অন্য সাধারণ গ্লোববিং চরিত্র, যেকোন চরিত্রের ঠিক একটির সাথে মিল রয়েছে ।
*.*
কমপক্ষে একটি থাকা যে কোনও ফাইলের সাথে মেলে .
। এর থেকে *a*
বা এর চেয়ে বেশি কোনও বিশেষ নাম বা অর্থ নেই *_*
। এবং *.?
কোনও বিন্দুর সাথে যে কোনও ফাইলের সাথে মিলবে that ডটের পরে ঠিক একটি অক্ষর। আরও কিছু জটিল বর্ধিত গ্লোববিং নিদর্শন রয়েছে - আপনার শেলের ম্যান পৃষ্ঠাটি দেখুন।
"নিউ হ্যাকার্স ডিকশনারি" (পুরানো এমআইটি "জারগন ফাইলের সম্প্রসারণ)" নোট করে যে "স্টার" *
প্রতীকটির সর্বাধিক প্রচলিত নাম (তারপরে splat
), এবং আমি মনে করি এটি বাস্তবে সত্য, এবং সম্ভবত .
এটি সাধারণত " ডট ", সুতরাং, যদিও এটি একত্রিত প্রতীক হিসাবে কোনও অভ্যন্তরীণ বিশেষ অর্থ রাখে না, সিকোয়েন্সটিকে এখনও ইউনিক্সে যুক্তিসঙ্গতভাবে তারকা-ডট-স্টার বলা হয়। (এটি কেবল কম দরকারী))
এখানে 2 টি প্রতীক রয়েছে, নক্ষত্র *
এবং বিন্দু .
। খোলগুলি সাধারণত নক্ষত্রটিকে কোনও চরিত্র হিসাবে ব্যাখ্যা করে তবে রেজেক্সে এর অর্থ লোভী গ্লোব হবে। এই ক্ষেত্রে এটি এমন কোনও কিছুর সাথে মিলবে যা শেষ হবে না বা বিন্দু দিয়ে শুরু হবে না, তবে এতে অন্তত একটি রয়েছে:
somefile.dot # match
.dot.between.words. # match
.onlydotatstart # don't match
onlydotatend. # match
.startandenddot. # don't match
onlydotatend.
মামলা একটি ম্যাচ, অবশ্যই?
touch 'onlydotatend.' && echo *.*
এটি ফেরত দেয় না
bash
এবং dash
। আপনি কোন শেল ব্যবহার করছেন?
zsh
কনফিগারেশনে চেষ্টা করেছি এবং এটি সেখানে কাজ করে। আমি বুঝতে পারি না কীভাবে onlydotatend.
ম্যাচ হতে পারে না, এমন কোনও কনফিগারেশন বিকল্প রয়েছে যা এটি করে?
*7.*
, সমস্ত ফাইল পাই যার এক্সটেনশনের আগে শেষ অক্ষর হয়7
এবং এর সাথে*sa*
, আমি এমন সমস্ত ফাইল পাইsa
যেখানে সেখানকার ফাইলনামের যে কোনও জায়গায় সাবস্ট্রিং রয়েছে, ইত্যাদি। (সেই অনুযায়ী, নিবন্ধটি আপনাকে cite শিরোনামে একটি কিভাবে করেনি ওয়াইল্ডকার্ড কাজ MS-DOS এর মধ্যে ? (জোর নিজে নিজেই যোগ করা হয়েছে)।)