প্রতিধ্বনিতে * তারাটির সাথে কে ডিল করে


15

কে * ইন (ব্যাখ্যায়) ডিল করে

echo *

প্রতিধ্বনিটি কি তারা বা শেলটি দেখায় এবং এটি ফাইলের নামের একটি তালিকা দেখায় ..

কি সম্পর্কে

cp temp temp*

14
এটি পরিবর্তিত হয়. ইউনিক্স শেল বা উইন্ডোজ শেল?
user1686

@ গ্রাটিউটি ইউনিক্স শেল দুঃখিত আমি এটি উল্লেখ করিনি।
ফাইসরাফ্ট

ইউনিক্সের জন্য, নীচের উত্তরগুলি সঠিক। (উইন্ডোজে, এটি স্বতন্ত্র প্রোগ্রামগুলি দ্বারা সম্পন্ন হয় - যদিও সাধারণত মেইন () এর আগে রানটাইম লাইব্রেরি দ্বারা স্বয়ংক্রিয়ভাবে হয়ে থাকে)
ব্যবহারকারীর6868

উত্তর:


24

বাশ (বা আপনি শেল হিসাবে যা ব্যবহার করুন), কোনও ইনপুট পড়ার জন্য প্রথম জিনিস এবং এটি ?এবং এর মতো বিশেষ অক্ষরের ব্যাখ্যা শুরু করবে *সিডাব্লুডিতে* যেকোন ম্যাচগুলিতে প্রসারিত হয় , যার অর্থ তারকাচিহ্নটি ম্যাচগুলির দ্বারা প্রতিস্থাপিত হয়।

বেশিরভাগ ক্ষেত্রে, এটি মোটামুটিভাবে এগিয়ে চলেছে তবে সময়ে সময়ে এটি কিছু বিভ্রান্তির কারণ হতে পারে।

নিম্নোক্ত বিবেচনা কর. একটি ডিরেক্টরিতে এই বিষয়বস্তু রয়েছে:

  • পরীক্ষা (নিয়মিত ফাইল)
  • পরীক্ষা 1 (ডিরেক্টরি)
  • পরীক্ষা 2 (ডিরেক্টরি)
  • পরীক্ষা 3 (ডিরেক্টরি)

আপনি যদি mv *কিছু টাইপ করেন তবে আপাতদৃষ্টিতে অদ্ভুত ঘটনাটি ঘটে: test3সেখানে রয়েছে, তবে বাকিগুলি চলে গেছে। প্রথমে অদ্ভুত থাকা সত্ত্বেও, আপনি একবার বুঝতে পারবেন যে বাশ আসলে কী চলে mv। নক্ষত্রের কারণে, বাশ ব্যাখ্যা mv *করে mv test test1 test2 test3, এবং এমভি যখন সেই তালিকাটি পেয়ে যায়, তখন ধরে নেওয়া হবে যে শেষ যুক্তিটি গন্তব্য, যেখানে এখানে সমস্ত ফাইল সরিয়ে নেওয়া হত।

আপনি তালিকাভুক্ত আদেশ হিসাবে:

  • echo *গরীব মানুষ হিসাবে কাজ করতে পারে ls। শেলটি সেই ডিরেক্টরিটিতে থাকা যাবতীয় নক্ষত্রকে প্রসারিত করবে এবং আমি নিশ্চিত যে আপনি ইতিমধ্যে জানেন, echoআক্ষরিক অর্থে আক্ষরিকরূপে এটি পাস করা কোনও বাশকে প্রতিধ্বনিত করবে।
  • cp temp temp*mvআমি উপরে বর্ণিত কমান্ডটির মতো কিছুটা আচরণ করব , যদি না কেবল টেম্প নামের একটি ডিরেক্টরি থাকে, যেখানে ক্ষেত্রে উত্স এবং গন্তব্যের নাম একই থাকে, অর্থাত্ এটি কিছুই করবে না।

8
*পরিবর্তে ব্যবহার সম্পর্কে "দুর্বল" কিছুই নেই ls। উদাহরণস্বরূপ, for f in *; doহয় আরো তুলনায় নির্ভরযোগ্য for f in $(ls)একটি ফাইলের নাম হোয়াইটস্পেস বা উল্লিখিত glob অক্ষর আছে। (তবে, সিডব্লিউডিতে কোনও ফাইল না থাকলে এটি ব্যর্থ হবে, সুতরাং আপনাকে সেই মামলার জন্য পরীক্ষা করা দরকার))
রিচি

1
@rici এটি কি shopt nullglobজন্য
একটি সিভিএন

3
হিসাবে হিসাবে echo *, কৌশলটি কিছু ক্ষেত্রে আপনাকে বাঁচাতে পারে।
একটি সিভিএন

2
সাথে চিমিং: ফাইন্ডগুলি "-" দিয়ে স্বেচ্ছাচারী ফোল্ডারে অবাঞ্ছিত সুইচগুলিকে ট্রিগার করে। যতক্ষণ না আপনি বুঝতে পেরেছেন যে rm ./-stupidfile কাজ করে সেগুলি মুছে ফেলা খুব মজাদার নয়।
ρɯͽbρɯͽ

1
@ ρɯͽbρɯͽ আমি লক্ষ্য করেছিলাম যখন একবার আমার সাথে -1024x-1024 থেকে 1024x1024 পর্যন্ত স্থানাঙ্ক সিস্টেমে অবস্থানের প্রতিনিধিত্বকারী ফাইলের নামযুক্ত ফাইলগুলির একটি ডিরেক্টরি অন্তর্ভুক্ত করা দরকার। আমি যখন পালানোর বিষয়ে প্রথম জানতে পারি তখনই।
জারমুন্ড

5

ইতিমধ্যে উল্লিখিত হিসাবে, শেল প্রসারিত হয় *সুতরাং echoবর্তমান ডিরেক্টরিতে শেল যা খুশি তা আর্গুমেন্ট হিসাবে গ্রহণ করে। তবে নোট করুন যে প্রসারণটি যদি কিছুই না করে, উদাহরণস্বরূপ ডিরেক্টরিতে যদি কোনও গোপনীয় ফাইল না থাকে *তবে ডায়ালটি অপরিবর্তিত রাখা হয় এবং ডাকা কমান্ডের মতো পাস করা হয় (যদি না কিছু শাঁসের মতো মানক বিকল্প না ব্যবহার করা হয় bash)। echo *এরপরে কোনও দরিদ্র মানুষের মতো আচরণ lsকরবে না কারণ প্রাক্তন কিছুই প্রিন্ট করবেন না, যদিও পরেরটি মুদ্রণ করবে *

একইভাবে, বর্তমান ডিরেক্টরিতে cp /tmp/temp temp*নামযুক্ত একটি ফাইল তৈরি করবে temp*যদি এখনও কমপক্ষে একটি ফাইল নেই যার নাম দিয়ে শুরু হয় temp

অবশেষে, আপনি যদি *যাই চান না কেন অপরিবর্তিতভাবে পাস করতে চান তবে আপনি একক উদ্ধৃতি '*', ডাবল কোট "*"বা ব্যাকস্ল্যাশ ব্যবহার করে এটিকে প্রসার থেকে রক্ষা করতে পারেন \*


4

বাশে, শেলটি এটির সাথে কাজ করে। আপনি যদি *প্রতিধ্বনি ছাড়াও চেষ্টা করেন তবে দেখুন

দ্রষ্টব্য- কিছু মন্তব্যের উপর ভিত্তি করে, আমি * ENTER চালানোর সময়, একটি ডিরেক্টরি তৈরি করতে এবং কিছু ফাইল তৈরির জন্য টাচ কমান্ডটি ব্যবহার করার পরামর্শ দিই এবং সেগুলির কোনওটি নিশ্চিত না করে বা কমপক্ষে প্রথম বর্ণমালা অনুসারে নিশ্চিত করা উচিত যে নামটি নয় কোনও স্ক্রিপ্ট বা কমান্ডের পথে।

$ *
bash: a: command not found

$ echo *
a a.aa a.ab a.b a.htm a.tx

সুতরাং ls *একটি পদসমষ্টি একটি বিট

উইন্ডোজে, *কমান্ড দ্বারা পরিচালিত হয়, তাই dir *.*ক্লিচ নয়।

দ্রষ্টব্য- কিছু মন্তব্য দেখে, আমি যুক্ত করব, চালানোর ঝুঁকি রয়েছে * তারপরে ENTER করুন। ডিরেক্টরি তালিকাতে প্রথমে যদি আপনার কাছে আরএম নামে একটি ফাইল থাকে তবে তা বিপজ্জনক কারণ এর পরে যে কোনও কিছুই মুছে ফেলা হবে। এছাড়াও, এবং এটি কম সম্ভাবনা নেই, যদি ডিরেক্টরি তালিকার প্রথম ফাইলটি যদি কোনও পথের স্ক্রিপ্টের নাম হয়, তবে এটি এটি চালিত হবে।


4
নোট অবশ্যই একটি ফাইল rmঅবশ্যই থাকতে পারে ।
ভোলকার সিগেল

1
... এবং আর একটি বলা হয়
rf

1
@ ?bρɯͽ আপনার ফাইল থাকতে পারে যার ফাইলের নাম -rf? আমি চেষ্টা touch -rfএবং touch \-rfকিন্তু তা তৈরি করা হয় না।
বারলপ

@ বার্লপ আমি উপরে মন্তব্য করেছি; গুই (জিডিটের মতো) এগুলিকে সূক্ষ্মভাবে পরিচালনা করে তবে শেলটি (কমপক্ষে বাশ) যেহেতু এটি পেরিয়ে যায় তার আগে /। দরকার হয় / আপনি কি কখনও দুর্ঘটনাক্রমে এ জাতীয় ফাইল তৈরি করা উচিত, আরএম ইঙ্গিত দেওয়ার চেষ্টা করে, তবে যদি তা না হয়: আমি আশা করি এটি কেবলমাত্র নিষ্পত্তিযোগ্য বাচ্চাদের সাথে একটি টেম্পোরাল ফোল্ডারে শেষ হয়।
ǝɲǝɲbρɯͽ

@ ?bρɯͽ আমি কী বোঝাতে চাইছি বুঝতে পারছি না, আমি জিজ্ঞাসা করছি আপনি কীভাবে একটি ফাইল তৈরি করতে পারেন -rf? (আমি আরএম নামক একটি ফাইল এবং -আরএফ নামক একটি ফাইলের বিপদ এবং একটি গুরুত্বপূর্ণ ফোল্ডারে টাইপ করে * এবং ধাক্কা দেওয়ার সমস্যাটি বুঝতে পারি, আমি তা করার পরিকল্পনা করি না)
বার্লপ

-1

আর্গুমেন্ট কমান্ডের হাতে দেওয়ার আগে শেলটি বেশ কয়েকটি বিস্তৃতি সম্পাদন করে ।

Https://www.gnu.org/software/bash/manual/bashref.html# সরল- কম্যান্ড- এক্সপেনশনও দেখুন

ব্যাশ-নির্দিষ্ট নয়, দেখুন http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_01


প্রযুক্তিগতভাবে আপনি যা লিখছেন তা সঠিক, তবে লিঙ্কগুলি ছাড়া এই উত্তরটি প্রশ্নের উত্তর দেওয়ার জন্য আসলে কিছুই করে না। প্রাসঙ্গিক বিবরণ অন্তর্ভুক্ত বিবেচনা করুন।
একটি সিভিএন

@ মাইকেলকিজারলিং আমি লিঙ্কগুলি সম্পর্কে এই বিষয়টির সাথে একমত, তবে ওপি কেবল শেল বা কমান্ড নিজেই যুক্তিগুলি পরিচালনা করেছে কিনা তা জানতে চেয়েছিল। গ্লেনের উত্তরটি সহজভাবে বলে যে শেলটি তাদের পরিচালনা করে, সুতরাং এটি প্রশ্নের একটি গ্রহণযোগ্য উত্তর।
slhck

@ এসএলএইচএইচসি এই কারণেই আমি এনএএ হিসাবে পতাকাঙ্কিত করি নি: লিঙ্কগুলি সরিয়ে দেওয়ার পরে এমন কিছু বাকী রয়েছে যা প্রশ্নকে সম্বোধন করে। এর অর্থ এই নয় যে এটি আমার মতে ভাল উত্তর। (আমি এখন দেখতে পাচ্ছি যে আমার প্রাথমিক মন্তব্যটি অন্যথায় বিবেচনা করা যেতে পারে; এর জন্য আমি ক্ষমা চেয়ে নিচ্ছি, তবে আমি এখনও মনে করি এটির যেখানে রয়েছে সেখানে রেখে দেওয়ার যথেষ্ট মূল্য রয়েছে))
সিভিএন

@ মাইকেলKjörling সম্মত। আমি শুধু যারা জন্য মন্তব্য বাম করেনি NAA যেমন (এবং হবে) এটি পতাকা।
slhck
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.