एक खोज के साथ locate
फाइल सिस्टम में पथ मिलते हैं।
अक्सर, आप एक ऐसी प्राथमिकता जानते हैं जिसे आप या तो केवल फाइलों में या केवल निर्देशिकाओं में रुचि रखते हैं।
'खोज' खोज अक्सर कई परिणाम देता है। परिणाम में केवल एक प्रकार को शामिल करना उपयोगी होगा, क्योंकि यह आउटपुट को छोटा करने में मदद करता है।
लेकिन फ़ाइलों या निर्देशिकाओं को छोड़ने का एक और दिलचस्प तर्क है: क्योंकि परिणाम पथों की सूची अस्पष्ट हो सकती है - न केवल सिद्धांत में।
नीचे दिया गया उदाहरण वास्तविक दुनिया का मामला है, और असामान्य नहीं है:
$ locate --regex --basename "xfce4-keyboard-overlay$"
/usr/local/bin/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay
ठीक है, हमें कुछ मिला! लेकिन ... फाइलें, या निर्देशिका?
$ file /usr/local/bin/xfce4-keyboard-overlay
/usr/local/bin/xfce4-keyboard-overlay: bash script
तो यह एक फ़ाइल है ...
$ file /usr/local/share/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay: directory
जबकि दूसरा नहीं है।
इस अस्पष्टता को पढ़ने के लिए कठिन रास्तों की लंबी सूची बना रही है, इसलिए निर्देशिकाओं को फ़िल्टर करना वास्तव में अच्छा होगा, उदाहरण के लिए कॉमैन लाइन विकल्प का उपयोग करना locate
।
क्या ऐसा कुछ मौजूद है? यहां तक कि अगर निर्देशिका के लिए फ़िल्टर का पता लगाने से अलग है?
कम से कम, एक स्क्रिप्ट का उपयोग करके सभी फ़ाइल नामों को जांचने के लिए उपयोग किया जा सकता है - जो धीमा हो सकता है।
while
बयान के बाद "IFS =" पर कुछ जानकारी जोड़ सकते हैं ?