GNU ls (यानी गैर-एम्बेडेड लिनक्स सिस्टम और Cygwin पर उपलब्ध ls कमांड, कुछ अन्य यूनियनों पर भी उपलब्ध) में उनके नाम के आधार पर कुछ फाइलों को छिपाने का विकल्प है। हालांकि निर्देशिका को अनदेखा करने का कोई तरीका नहीं है।
ls --hide='t_*' uploads
एक और तरीका यह है कि अपने शेल को मिलान करना चाहिए। बैश, ksh और zsh में !(t_*)
मिलान करने के अलावा सभी फाइलों को मिलाने के लिए एक नकारात्मक पैटर्न है t*
; shopt -s extglob
कोस में इस सुविधा को चालू करने की आवश्यकता है , और zsh में इसे चालू करने की आवश्यकता है setopt ksh_glob
। Zsh के समतुल्य वाक्य रचना भी है ^t_*
जिसे चालू करने की आवश्यकता है setopt extended_glob
। यह अभी भी निर्देशिकाओं को अनदेखा नहीं करता है। Zsh में एक अतिरिक्त विशेषता है जो न केवल नाम से, बल्कि मेटाडेटा और अधिक: ग्लोब क्वालिफायर से भी फाइलों को मिलान करने की अनुमति देता है । (.)
नियमित फ़ाइलों को प्रतिबंधित करने के लिए एक मैच के अंत में जोड़ें । नकार ^
नाम मिलान वाक्यविन्यास का हिस्सा है, तो ^t_*(.)
इसका अर्थ है "सभी नियमित फ़ाइलें मेल नहीं खा रही हैं t_*
" और "सभी फाइलें जो नियमित रूप से फाइल मिलान नहीं कर रही हैं t_*
"।
setopt extended_glob # put this in your ~/.zshrc
ls uploads/^t_*(.)
यदि आप अपने आप को उन्नत उपकरणों के बिना पाते हैं, तो आप इसके साथ किसी भी यूनिक्स पर कर सकते हैं find
। यह आमतौर पर कमांड लाइन पर आपके द्वारा टाइप की जाने वाली चीज नहीं है, लेकिन यह शक्तिशाली और सटीक है। कालेब पहले ही दिखा चुका है कि GNU खोजने के साथ यह कैसे करना है । -maxdepth
विकल्प पोर्टेबल नहीं है, आप -prune
इसके बजाय उपयोग कर सकते हैं , को पुनरावृत्ति करने find
से रोकने के लिए ।
find uploads/* -type d -prune -o \! -type f -name 't_*' -print
बदलें -print
द्वारा -exec ls -lG -- {} +
निष्पादित करने के लिए ls
फाइलों पर अपने पसंदीदा विकल्पों के साथ।
ऊपर के सभी कमांड्स डॉट फाइलें (यानी जिनके नाम से शुरू होती है .
) को छिपाते हैं । यदि आप उन्हें प्रदर्शित करना चाहते हैं, तो पास -A
करें ls
या D
zsh ( ls uploads/^t_*(.D)
) में ग्लोब क्वालिफायर जोड़ें । इसके साथ find
, आप इसे केवल एक स्तर पर फिर से बनाने के एक अलग दृष्टिकोण का उपयोग कर सकते हैं ( find
विशेष रूप से डॉट फ़ाइलों का इलाज नहीं करता है)। यदि आप find
वर्तमान निर्देशिका में चलते हैं तो यह पूरी तरह से काम करता है ।
cd uploads && find . -name . -o -type d -prune -o \! -type f -name 't_*' -print