Ls -l * .xML কমান্ড নিয়ে একটি ডিরেক্টরিতে কাজ করছে না Iss


2

আমি একটি অদ্ভুত ইস্যু মধ্যে দৌড়াচ্ছি। আমি ls -l *.xmlএকটি নির্দিষ্ট ডিরেক্টরিতে একটি কার্যকর করার চেষ্টা করছি তবে আমি যখন এটি করি, আমি বার্তাটি পাচ্ছি

ls: invalid option -- .
Try ls --help' for more information.

যদি আমি এর মতো কিছু করি ls -l *.phpবা ls -l *.txtএটি একই ডিরেক্টরিতে ঠিক কাজ করে যেখানে আমি উপরের অবৈধ বিকল্প বার্তাটি পাই। আমার কাছে এমনকি অপরিচিত বিষয়টি হ'ল আমি যদি ls -l *.xmlঅন্য কোনও ডিরেক্টরিতে এটি করি তবে এটি ভাল কাজ করে এবং এক ডিরেক্টরিতে যেমন অবৈধ বিকল্প বার্তা দেয় না।

আমি ls -l *.xmlডিরেক্টরিতে মূল এবং আমার সাধারণ লগইন উভয়ই হিসাবে চেষ্টা করার চেষ্টা করেছি এবং এটি একই অবৈধ বিকল্প বার্তা দেয়।

type ls
ls is aliased to `ls --color=tty'

which ls
alias ls='ls --color=tty'
    /bin/ls

whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

আমি কি আমার মন হারাচ্ছি? ভুল কি হতে পারে? কেন ls -l *.xmlএকটি ডিরেক্টরিতে কাজ করবে না তবে অন্যদের মধ্যে কাজ করবে?

সম্পাদনা:

Ls -l কে গ্রেপ করতে পাইপ দেওয়ার চেষ্টা করা হয়েছে তবে এই ত্রুটিটি পেয়েছে। নিশ্চিত না কেন আমাকে কখনই গ্রেপ করার জন্য পাইপ লাগানো দরকার, কারণ ls -l *.xmlঅন্য কোনও ডিরেক্টরিতে কোনও সমস্যা নেই। এর আগে কখনও গ্রেপ করার দরকার পড়েনি।

ls -l | grep .xml
grep: invalid option -- .
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.

আপনার ডিরেক্টরিতে কোন ফাইল রয়েছে? আমাদের একটি ls -laদয়া করে দিন। আমি অনুমান করি এমন একটি ফাইল আছে যার নাম দিয়ে শুরু হয় --বা অনুরূপ।
— slhck

হ্যাঁ, সমস্যাটি ঠিক তাই ছিল। ডিরেক্টরিটির পুরো বিষয়বস্তুটি যত্ন সহকারে দেখার পরে, আমি একটি ফাইল খুঁজে পেয়েছিলাম যার নাম আক্ষরিক -.xml। স্পষ্টতই ফাইলনামে ড্যাশ সমস্যা তৈরি করছিল। আসলে, rm -.xmlফাইলের নামটি rmব্যর্থ হওয়ার কারণে আমি ফাইলটি মুছতেও পারিনি । আমাকে একটি গ্রাফিকাল এসএফটিপি ক্লায়েন্টের মাধ্যমে ডিরেক্টরিতে যেতে হয়েছিল এবং এটি মুছে ফেলতে হয়েছিল। ফাইলটি সরিয়ে ফেলা হলে, এটি সমস্ত আবার কাজ করছে বলে মনে হয়।
— মেরিক ডেনিস

কিছু দ্রুত পর্যবেক্ষণ। ' - ' স্বাভাবিক সঙ্কুচিত ক্রমের অক্ষরগুলির আগে , সুতরাং -xx সাধারণত প্রথম হয় যখন বাশ ফাইলের মুখোশ প্রসারিত করে; ls এর পরামিতিগুলি দেখার আগে এটি করা হয়: এটি কোনও প্রবেশ করা স্ট্রিং থেকে প্রসারিত ফাইলের নাম আলাদা করতে পারে না। অন্যান্য কমান্ডের মতো ls বিকল্পগুলির শেষের জন্য " - " গ্রহণ করে , তাই ls -l -- *.xmlকাজ করে। আমি আপনার গ্রেপ ত্রুটিটি পুনরুত্পাদন করতে পারি না , তবে ls -l | grep *.xmlঅনুরূপ ত্রুটি দিয়েছি । কমান্ডটি হওয়া উচিত ls -l | grep '\.xml$': আপনার কমান্ডটি AxMLB এর মতো নামগুলি সন্ধান করে (সর্বদা একক-উদ্ধৃতি অনুসন্ধানের স্ট্রিংগুলি অ- অক্ষরসংখ্যার সাথে থাকে)।
— এএফএইচ

উত্তর:


2

যেহেতু *.xmlগ্লোব .xmlবর্তমান ডিরেক্টরিতে সমস্ত ফাইলে প্রসারিত হবে , তাই আমি ধরে নিয়েছি যে গ্লোবটি এমন কিছুতে প্রসারিত হবে যা পার্স করা হবে

ls -l -- .....

বা অনুরূপ, অর্থাত্ একটি ফাইল যা দিয়ে শুরু হয় --।

একটি সাধারণ তালিকা দিয়ে ফাইলটি কী তা জানার চেষ্টা করুন ls -la।

বলেন ফাইলটি মুছে ফেলার চেষ্টা করুন rm -- --filename- --যদি আপনি চান ফাইল নামটি বিকল্প হিসাবে পার্স করা না হয় তবে এখানে প্রয়োজনীয় is বিকল্পভাবে আপনি এটি কোনও জিইউআই বা এটির মাধ্যমে সরাতে পারেন rm "--filename"।


-2

ব্যবহার করে দেখুন ls -l | grep .xml। আমি নিশ্চিত না যে ls -l * .xML এর মতো কিছু প্রথম স্থানে কীভাবে কাজ করতে পারে কারণ আমি এই ধারণাটির মধ্যে আছি যে আপনি যদি নিজের ফলাফলগুলি একটি ফাইল ফর্ম্যাটে সংকুচিত করার চেষ্টা করছেন তবে সাধারণত পাইপিং এবং গ্রেপ সহায়তা করবে ..


ধন্যবাদ, কিন্তু এখনও কাজ করছে না। উপরে আমার সম্পাদনা দেখুন। আমি আরও কিছু খনন করছি এবং আমি মনে করি যে এখন সমস্যাটি কী হতে পারে তা আমি দেখছি।
— মেরিক ডেনিস

1
এটি কিছুটা ভুল / সত্য নয়। ls -l *.xmlঅবশ্যই কাজ করবে, কারণ *.xmlগ্লোব বর্তমান ডিরেক্টরিতে সমস্ত এক্সএমএল ফাইলগুলিতে প্রসারিত হবে, সুতরাং কমান্ডটি ls -l foo.xml bar.xml baz.xml ...চালানো হবে।
— slhck

আহ আহুক স্পষ্টির জন্য ধন্যবাদ। আমি যখন নির্দিষ্ট ফাইল / ফর্ম্যাটগুলি সন্ধান করতাম তখন আমি সর্বদা পাইপ /
— গ্রেপ করি

1
হ্যাঁ, এটি আসলে দরকার নেই। পরে যদি আপনি ফাইলের নামগুলি দিয়ে কাজ করতে চান তবে এটি ত্রুটির ঝুঁকিতে রয়েছে। আপনি কেবল এর for f in *.xml; do…পরিবর্তে করতে পারেনfor f in $(ls | grep .xml); do…
— ১:14:১৪
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.