শেল এর একটি বৈশিষ্ট্য গ্লোববিং করা হয়?


12

আমি এই এবং এই মত অনেক প্রশ্ন এবং উত্তর পড়ে

আমি জানি ওয়াইল্ডকার্ডগুলি কমান্ড চালানোর আগে শেল দ্বারা প্রসারিত হয় এবং সেগুলি শেলের একটি বৈশিষ্ট্য। এছাড়াও ওয়াইল্ডকার্ডগুলি সেই আদেশগুলি নিয়ে কাজ করে যা অনেক যুক্তি গ্রহণ করতে পারে। ইন find . -name *.rb যদি আমরা বর্তমান ডিরেক্টরির মধ্যে একাধিক ফাইল আছে findআমাদের একটি ত্রুটি দিতে খোঁজ একাধিক আর্গুমেন্ট এবং সমাধানের জন্য এই হয় উপায়ে গ্রহণ করতে পারে না কারণ হবে:

find . -name "*.rb"
find . -name '*.rb'
find . -name \*.rb

আমরা নক্ষত্র থেকে রক্ষা পেয়ে শেল দ্বারা সম্প্রসারণ রোধ করি তবে ওয়াইল্ডকার্ডগুলি শেলের একটি বৈশিষ্ট্য; যখন আমরা অ্যাসিটার্ক শেলটি থেকে পালাতে পারি তার অর্থ সম্পর্কে জানা যায় না এবং এটির নামের একটি ফাইল পাওয়া উচিত *.rb, সুতরাং এই ক্ষেত্রে কীভাবে তারাটি বিস্তৃত হচ্ছে?

উত্তর:


21

হ্যাঁ, শেল *ডিরেক্টরিতে *.rbকোনও অক্ষরযুক্ত সমস্ত ফাইল এবং কোনও অক্ষর এবং সমাপ্তিযুক্ত সমস্ত ফাইল হিসাবে বোঝে .rbএবং এটিকে প্রসারিত করে।

findকমান্ড নিজেই globbing গ্রহণ করে।

আপনি উদ্ধৃত না থাকে তাহলে *তারপর শেল এটা প্রসারিত হবে আগেfind কমান্ড যুক্তি, তাই পরিবর্তে একটি উল্লিখিত glob সূচিত *.rbপ্রেরণ find, নির্দেশিকাতে হস্তান্তর করা হবে উল্লিখিত glob মিলে সব ফাইল নাম findএবং findতাদের ব্যাখ্যা করতে চেষ্টা করবে আর্গুমেন্ট হিসাবে, যা সম্ভবত একটি ত্রুটির কারণ হতে পারে, বা কমপক্ষে আপনি যা চান তা নয় (এটি কেবলমাত্র সঠিক ডিরেক্টরিতে কাজ করবে যদি বর্তমান ডিরেক্টরিতে কোনও ম্যাচিং ফাইল না থাকে)


আপনাকে ধন্যবাদ, এর অর্থ আমরা শেল বলতে বলি এটি কোনও গ্লোব নয় তবে কিছু কমান্ডগুলি ওয়াইল্ডকার্ডগুলি প্রসারিত করতে পারে? অথবা আমরা কী বলতে পারি যদি আমাদের কাছে শেল থাকে তবে গ্লোব্বিং সম্পর্কে জেনে রাখা এই কমান্ডগুলি কীভাবে তাদের প্রসারিত করতে পারে জানেন?
সিনোশ

5
যদি *উদ্ধৃতিটি দেওয়া হয়, তবে শেলটি এর প্রসারিত হবে না, এবং গ্লোব সহ আর্গুমেন্টটি সেই কমান্ডের কাছে পৌঁছে দেওয়া হয়েছে যা গ্লোব বুঝতে পারে - এটি যে কোনও আদেশের সাথে রেজেক্সকে গ্রহণ করে যা সর্বদা উদ্ধৃত করা উচিত ...
জান্না

1
আমার আনন্দ ^ _ ^
Zanna

7
@ সিনোশ: নোট করুন যে সমস্ত কমান্ড গ্লোব সিনট্যাক্স বুঝতে পারে না। এটি কেবল find
স্বেচ্ছাসেবক

1
@ স্নোশ ফাইন্ডটি সত্যিই ওয়াইল্ডকার্ডকে "সম্প্রসারণ" করছে না, এটি প্রতিটি ফাইলের মুখোমুখি হওয়া ফাইলের সাথে এটি মিলানোর জন্য এটি পরীক্ষা হিসাবে ব্যবহার করছে। একটি (খুব) কয়েকটি কমান্ড রয়েছে যা প্রচলিত অর্থে ওয়াইল্ডকার্ডগুলি প্রসারিত করে - আনজিপ এবং 7z [archive filename single argument] [list of files to extract]উদাহরণস্বরূপ একাধিক সংরক্ষণাগার (যখন তাদের তর্কগুলি সাধারণত কোনও ফর্মের হয় ) খুলতে এটি ব্যবহার করতে পারে ।
র্যান্ডম 832
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.