ls- তে নির্দিষ্ট ফাইলগুলি বাদ দিন


61

আমি ls চালাতে এবং আউটপুটে নির্দিষ্ট ফাইলগুলি বাদ দিতে চাই।

আমি যখন নিম্নলিখিত কমান্ডটি চালনা করি, তখন আমি প্রতিটি লাইনে সমস্ত ফাইল এক লাইনে পাই:

$ ls -1
file1
file2
file3
temp

আমি এই কমান্ডটি এমনভাবে চালাতে চাই যাতে এটি প্রদর্শিত হয়

$ ls -1 <insert magic here> temp
file1
file2
file3

উত্তর:


82
ls -I <filename>

-আই = ফাইলের নাম উপেক্ষা করুন, অর্থাত্ নির্দিষ্ট ফাইলটি তালিকাভুক্ত করবেন না।

একাধিক ফাইল উপেক্ষা করতে প্রতিটি ফাইলের নামের আগে একটি -I যোগ করুন ।

ls -I file1 -I file2

তাদের নামের দ্বারা ফাইলগুলি উপেক্ষা করার জন্য নিম্নলিখিত উদাহরণগুলি করুন do

ls -I "*.jpg" -I "*.svg"

4
আপনি দীর্ঘ-ফর্ম বিকল্প ব্যবহার করেন, তাহলে --ignoreআপনি উল্লিখিত glob নিদর্শন যেমন যে প্রসারিত করতে পারেন ls --ignore="file?"অথবাls --ignore="file*"
steeldriver

3
আপনি স্বল্প আকারের পাশাপাশি প্যাটার্নগুলি উদ্ধৃত করে
গ্লোব

18

আমার জন্য যদি আমি একবার ব্যবহার করি তবে এটি কাজ করে তবে আমি যদি দুবার ব্যবহার করি তবে তা হয় না। যেমন: ls -I *.csvকাজ করে।

কিন্তু ls -I *.csv -I *.txtকাজ করে না এবং আয় পরিবর্তে ফাইল txt।

--ignore আমার জন্য কৌতুক করেছে। এটি আমার প্রয়োজন এবং কাজ করেছিলাম।

ls -lhrt --ignore="*.gz" --ignore="*.1"

এটি আমার লগ ফোল্ডার থেকে ফাইলগুলি তালিকাভুক্ত করবে যেখানে এটি পুরানো ব্যাকআপ লগগুলি বাদ দেয়।


3
প্রথম ফর্মে * .csv উদ্ধৃত করা কাজ করে, যেমন ls -I '*.txt',। এটি অকার্যকর কাজ না করার কারণটি হ'ল শেল প্রসার, কারণ আপনি শেলটি সমস্ত সিএসভি ফাইল বাদ না দিয়ে তালিকাবদ্ধ করতে বলছেন। আসলে যা ঘটছে তা হ'ল এটি প্রসারণের পরে প্রথম .csv এবং .1 ফাইলগুলিকে উপেক্ষা করে তবে অবশিষ্টাংশের তালিকাভুক্ত করে
29:40

ডাবল-কোটিংও আমার পক্ষে কাজ করেছিল। ধন্যবাদ @verboze
user38537

এটি সহজ। ধন্যবাদ।
ফিলিপ ডেলটিল

6

ls --ignore={"*.jpg","*.png","*.svg"}


4
এটি কেবল তিনটি --ignoreবিকল্প পেতে বাশের ব্রেস সম্প্রসারণ ব্যবহার করছে । আপনিও ব্যবহার করতে পারতেন--ignore="*."{jpg,png,svg}
মুর্গু

1

আমি মনে করি এটি আপনার সন্ধান করছেন আউটপুট উত্পাদন করে:

ls -1 !(temp)

স্পষ্টতই , shopt -s extglobএটি কাজ করার জন্য আপনার প্রয়োজন
(আমি এটি সক্ষম করেছি, তাই আমি দূরবর্তী অতীতে কিছুটা সময় অনুভব করেছি যে আমি এটি দরকারী এবং এটি সক্ষম করেছিলাম)।

আমার ধারণা আপনি আউটপুট ফিল্টার করার জন্য গ্রেপ ব্যবহার করতে পারেন:

ls -1 | grep -v '^temp$'

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.