জিএনইউ এলএস (অর্থাত্ এমবেডেড লিনাক্স সিস্টেমে ls কমান্ড এবং সাইগউইন, যা অন্য কয়েকটি ইউনিয়নে উপলব্ধ) তাদের নামের উপর ভিত্তি করে কিছু ফাইল আড়াল করার বিকল্প রয়েছে। যদিও ডিরেক্টরিগুলি উপেক্ষা করার কোনও উপায় নেই।
ls --hide='t_*' uploads
আর একটি পদ্ধতি হ'ল আপনার শেলটি ম্যাচটি করে। বাশ, ksh এবং zsh এর !(t_*)
সাথে মিলে যাওয়া ফাইলগুলি বাদে সমস্ত ফাইলের সাথে মিলে যাওয়ার একটি প্রত্যাখ্যান প্যাটার্ন রয়েছে t*
; ব্যাশে এই বৈশিষ্ট্যটি চালু করা দরকার shopt -s extglob
, এবং zsh এ এটি চালু করা দরকার setopt ksh_glob
। Zsh এর সমতুল্য সিনট্যাক্সও রয়েছে ^t_*
যা চালু করা দরকার setopt extended_glob
। এটি এখনও ডিরেক্টরিগুলি উপেক্ষা করে না। জেডএস-এর একটি অতিরিক্ত বৈশিষ্ট্য রয়েছে যা কেবল নাম দিয়ে নয় মেটাডেটা এবং আরও অনেকগুলি: গ্লোব কোয়ালিফায়ার দ্বারা ফাইলগুলি মেলাতে দেয় । (.)
নিয়মিত ফাইলগুলিতে সীমাবদ্ধ করতে ম্যাচের শেষে যুক্ত করুন । প্রত্যাখ্যান ^
নামের মিলের সিনট্যাক্সের একটি অংশ, সুতরাং এর ^t_*(.)
অর্থ হল "সমস্ত নিয়মিত ফাইলগুলি মিলছে না t_*
" এবং "নিয়মিত ফাইলগুলির সাথে মিলে না এমন সমস্ত ফাইল" নয় t_*
।
setopt extended_glob # put this in your ~/.zshrc
ls uploads/^t_*(.)
আপনি যদি উন্নত সরঞ্জামগুলি ছাড়া নিজেকে খুঁজে পান তবে আপনি যে কোনও ইউনিক্সে এটি করতে পারেন find
। আপনি কমান্ড লাইনে সাধারণত যে ধরণের জিনিস টাইপ করবেন তা নয়, তবে এটি শক্তিশালী এবং সুনির্দিষ্ট। কালেব ইতিমধ্যে জিএনইউ অনুসন্ধানের মাধ্যমে এটি কীভাবে করবেন তা দেখিয়েছে । -maxdepth
বিকল্প পোর্টেবল নয়; -prune
পরিবর্তে পুনরাবৃত্তি find
থেকে থামার জন্য আপনি পরিবর্তে ব্যবহার করতে পারেন ।
find uploads/* -type d -prune -o \! -type f -name 't_*' -print
প্রতিস্থাপন -print
দ্বারা -exec ls -lG -- {} +
চালানো ls
ফাইল আপনার প্রিয় বিকল্পগুলি সহ।
উপরের সমস্ত কমান্ডগুলি ডট ফাইলগুলি আড়াল করে (যেমন ফাইলগুলির নাম যার সাথে শুরু হয় a .
)। আপনি, সেগুলিকে প্রদর্শন করে পাস করতে চান, -A
করতে ls
, অথবা যোগ D
zsh মধ্যে উল্লিখিত glob কোয়ালিফায়ার ( ls uploads/^t_*(.D)
)। এর সাহায্যে find
, আপনি কেবল এটি একটি স্তর পুনরাবৃত্তি করার একটি ভিন্ন পদ্ধতি ব্যবহার করতে পারেন ( find
ডট ফাইলগুলিকে বিশেষভাবে আচরণ করে না)। find
আপনি কেবল বর্তমান ডিরেক্টরিতে চালিত হলে এটি সম্পূর্ণরূপে কাজ করে ।
cd uploads && find . -name . -o -type d -prune -o \! -type f -name 't_*' -print