কেন এই ওয়াইল্ডকার্ড আমার প্রত্যাশা মতো কাজ করে না?


11

আমার ব্যবহারকারীর ফোল্ডারে আমার কাছে ডি রপবক্স, ডি ocuments, ডি মালিকানা এবং ডি ওএমপি ফোল্ডার রয়েছে।

ls a*যার নাম দিয়ে শুরু হয় সেই সমস্ত ফাইলের তালিকা দেওয়া উচিত a। রাইট? কিন্তু যখন আমি কমান্ডটি দেই, ls d*কেবল এটি প্রদর্শন করার পরিবর্তে dumpআমাকে ls ডাম্প ডিরেক্টরি দেখায়। এবং যখন আমি কমান্ডটি দেই ls D*, তারপরে এটি ডি থেকে শুরু করে সমস্ত ফোল্ডের ls প্রদর্শন করে

তাহলে আমি এটি বুঝতে কোন অংশটি মিস করেছি?

সম্পাদনা: একটি স্ক্রিনশট সংযুক্ত করা হচ্ছে এলএস স্ক্রিনশট

উত্তর:


17

বাশ ম্যান পৃষ্ঠা অনুসারে:

বাশ *,?, এবং [অক্ষরের জন্য প্রতিটি শব্দ স্ক্যান করে। যদি এই বর্ণগুলির মধ্যে একটি উপস্থিত হয়, তবে শব্দটি একটি প্যাটার্ন হিসাবে বিবেচনা করা হবে, এবং প্যাটার্নের সাথে মিলে যাওয়া ফাইলের নামের সাথে বর্ণমালা অনুসারে বাছাই করা তালিকা দ্বারা প্রতিস্থাপন করা হবে

এবং জন্য তথ্য নোড থেকে

S ls 'প্রোগ্রামে ফাইল সম্পর্কিত তথ্য (ডিরেক্টরি সহ যে কোনও ধরণের) তালিকাভুক্ত করা হয়। বিকল্পগুলি এবং ফাইল আর্গুমেন্টগুলি যথারীতি যথেচ্ছভাবে সংহত করা যায় m

ডিরেক্টরি নয় এমন বিকল্প-কমান্ড-লাইন আর্গুমেন্টের জন্য, 'ls' ডিরেক্টরি অনুসারে ডিরেক্টরিগুলির তালিকা তালিকাভুক্ত করে, পুনরাবৃত্তভাবে নয় এবং '' দিয়ে শুরু হওয়া নামের সাথে ফাইলগুলি বাদ দেয়। অন্যান্য অ-বিকল্প যুক্তিগুলির জন্য, ডিফল্টরূপে `ls 'কেবলমাত্র ফাইলের নাম তালিকাভুক্ত করে। যদি কোনও অপশনবিহীন আর্গুমেন্ট নির্দিষ্ট না করা থাকে তবে 'ls' বর্তমান ডিরেক্টরিটির বিষয়বস্তু তালিকাভুক্ত করে।

সুতরাং যখন আপনি দিবেন ls d*, d * সমস্ত ফাইল / ডিরেক্টরি নামের তালিকা অনুসারে d দিয়ে প্রসারিত হবে। সুতরাং আপনি আদেশ হয়ে যায়

ls dump

এবং ডাম্প হিসাবে একটি ডিরেক্টরির নাম, তাই আপনি ডিরেক্টরি "ডাম্প 'কিন্তু যখন আপনি দিতে সব ফাইল একটি তালিকা পেতে ls D*, ডি * প্রসারিত হয়" ডেস্কটপ ডকুমেন্টস ডাউনলোডগুলি ড্রপবক্স , "তাই কমান্ড হয়ে

ls Desktop Documents Downloads Dropbox

এবং এগুলি সমস্ত ডিরেক্টরি হিসাবে, আপনি পৃথক ডিরেক্টরিতে ফাইলের তালিকা পাবেন। বর্তমান ডিরেক্টরিতে ডি দিয়ে শুরু করা কোনও ফাইল থাকলে এটি আলাদাভাবে তালিকাভুক্ত করা হত।


2
একটি ছোটখাটো সংযোজন: যখন একাধিক ডিরেক্টরিকে আর্গুমেন্ট হিসাবে দেওয়া হয়, তখন ls প্রতিটি ডিরেক্টরি এর বিষয়বস্তু তালিকাভুক্ত করার আগে প্রদর্শন করে। এটি কোনও একক ডিরেক্টরিতে এটি করবে না।
মার্সেল স্টিমবার্গ

ধন্যবাদ! এটি আমার সন্দেহকে পরিষ্কার করেছে। আমি একটি করেছি ls p*এবং এটি একটি ফাইল দেখিয়েছিল কারণ এটি বিদ্যমান এবং পি থেকে শুরু করে কোনও ফাইল নেই বলেই পিকচার্স পাবলিক ফোল্ডারটি ls P*দেখায় । এবং যখন আমি পু নামে একটি ডিরেক্টরি তৈরি করেছি , তখন এটি প্রদর্শিত হয়েছিলls p*
আশফামে

7

ls d * এবং D * উভয় তালিকার ফাইল এবং ফোল্ডারগুলি যথাক্রমে d * এবং D * এর সাথে মিলছে, আচরণটি একই রকম, আপনার পরীক্ষায় অবশ্যই ভুল হয়েছে।

আপনি যদি কেবল ফোল্ডারের নামগুলি তালিকাবদ্ধ করতে চান এবং ফোল্ডার সামগ্রীগুলি না করে আপনাকে "-d" ব্যবহার করতে হবে:

ls -d D*

আমি একটি স্ক্রিনশট সংযুক্ত করেছি, দয়া করে একবার দেখুন
আশফাম

0

উপরে প্রস্তাবিত হিসাবে, -dবিকল্প যেতে উপায়। যোগ করার পদ্ধতি

alias ld='ls -d'

আমার ~/.bashrcফাইলটি আমার পক্ষে ভাল কাজ করে।


3
এই উপনামের সাহায্যে আপনি সহজেই অ্যাক্সেসকে অবরুদ্ধ করেন ld - The GNU linkerযা ওপিকে সংকলন এবং লিঙ্কিং প্রোগ্রামগুলি থেকে বিরত রাখবে। alias lsd='ls -d'পরিবর্তে ব্যবহার করুন। কোনও কিছুর নাম আগে থেকেই ব্যবহার করা হয়েছে কিনা তা fooসর্বদা যেমন আলিয়াস করার আগে দেখুন, এবং ঠিক করুন যে type foofoofoo
উপাধির সুবিধার্থে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.