मैं केवल प्रदर्शन फ़ाइलें कैसे बना सकता हूँ?


24

मुझे लगता है कि केवल गैर-निर्देशिका प्रदर्शित करने के लिए ls बनाने का एक तरीका होना चाहिए, लेकिन मैन पेज इसे स्पष्ट नहीं करता है


के बारे में निश्चित नहीं है ls, लेकिन आप इसे आसानी से fileकमांड के साथ कर सकते हैं file /directory/containing/the/files -maxdepth 1 -not -type d:।
हेनिंग कोकरबेक 22

1
एक और तरीका है , जैसे कुछ के lsमाध्यम से उत्पादन को फ़िल्टर करना होगा । लेकिन ध्यान रहे कि ls के आउटपुट को पार्स करना मुश्किल हो सकता हैgrepls -1F /directory/containing/the/files | grep -vE /$
हेनिंग कोकरबेक 22

जवाबों:


37
ls -p | grep -v /

का उपयोग करते हुए ls -pबताता lsप्रविष्टियों जो एक निर्देशिका हैं एक स्लेश संलग्न करने के लिए, और का उपयोग कर grep -v /बताता है grepकेवल लाइनों वापस जाने के लिए नहीं एक स्लेश हैं।


मैंने इसकी जाँच की क्योंकि यह मेरा पसंदीदा उत्तर है (जबकि मैंने उन सभी को
उखाड़ फेंका था

"आप एकल कॉलम सूची के लिए 1 स्विच का उपयोग कर सकते हैं" क्षमा करें, मैंने यह पता लगाने की कोशिश की कि आपका क्या मतलब है, मैं सराहना करता हूं और उदाहरण / स्पष्टीकरण यदि आप करेंगे, तो मुझे पता है कि सी प्रोग्रामिंग के संबंध में एक स्विच क्या है
विचारशील

@ sdkks 1आउटपुट को पाइप करते समय आपको स्विच की आवश्यकता नहीं होती क्योंकि यह उस स्थिति में एकल कॉलम के लिए डिफ़ॉल्ट होगा। अगर ऐसा है तो आप अर्थ थे।
thomasrutter

@thinksinbinary यह सुनिश्चित नहीं करता है कि इसे मल्टी कॉलम कैसे बनाया जाए, लेकिन आप अपना अलग प्रश्न पूछ सकते हैं या पूछ सकते हैं और किसी को पता चल जाएगा।
thomasrutter

7

आप यह कोशिश कर सकते हैं:

find . -maxdepth 1 -not -type d

और इसे एक विशेष उपनाम के लिए मैप करें।

लेकिन अगर आप वास्तव में lsकमांड का उपयोग करने के लिए उत्सुक हैं , तो यहां:

ls -p | egrep -v /$


6

वैकल्पिक रूप से:

ls -lAh | grep -v '^d'

इस विधि में सूचीबद्ध है

  • -l लंबी सूची प्रारूप
  • -A लगभग सभी प्रदर्शित करता है (छुपी हुई फ़ाइलें दिखाएँ लेकिन दिखाओ .और नहीं ..)
  • -h मानव पठनीय फ़ाइल आकार

जबकि grep

  • -v मिलान रिकॉर्ड न दिखाएं
  • Regular expressionफ़िल्टर ^d- जो अक्षर d (निर्देशिका के लिए) से शुरू होते हैंdrwxrwxr-x <some file details> <foldername>

यदि आप हर बार टाइप नहीं करना चाहते हैं, तो आप इसे अपने बैश / शेल प्रोफाइल के लिए एक उपनाम में बना सकते हैं


2

मैंने @thomasrutter के उत्तर पर आपकी (@thinksinbinary) टिप्पणी में देखा कि आप उन्हें उल्टे क्रम में और स्तंभों में छापने में सक्षम होना चाहते थे। आपने शायद इसे पहले ही समझ लिया है या आगे बढ़ गए हैं, लेकिन यहाँ यह है:

ls -pr | grep -v / | column
  • -p निर्देशिका नामों के लिए आगे स्लैश ('/') जोड़ता है
  • -r आउटपुट का क्रम उलट देता है
  • -v को निर्देशिकाओं के अलावा सब कुछ प्रिंट करने के लिए एक उलटा खोज करने की सुविधा देता है ( सब कुछ जिसमें '/' नहीं है, वहां -p डाल दिया गया है )
  • " कॉलम इसे कॉलम में रखता है" - कप्तान स्पष्ट

1
मुझे लगता है कि यह अच्छा है कि ubuntu फोरम पर लोग अभी भी टिप्पणी करते हैं और लंबे समय के बाद आपकी पोस्ट पढ़ते हैं। मैं असेम्बली और ऑपरेटिंग सिस्टम को सीखने के लिए लिनक्स में वापस जाना चाहता हूं क्योंकि विंडोज़ पर ऐसा करना ज्यादा कठिन है। धन्यवाद!
विचारशील

0
ls -F | grep -v /

उपरोक्त कमांड फाइलों को प्रदर्शित करता है, लेकिन इसमें सीमलिंक, पाइप आदि शामिल हैं। यदि आप उन्हें भी खत्म करना चाहते हैं, तो आप नीचे दिए गए झंडे में से किसी एक का उपयोग कर सकते हैं।

ls -Fफ़ाइल नाम के लिए प्रतीकों को जोड़ता है। ये प्रतीक फाइलों के बारे में उपयोगी जानकारी दिखाते हैं।

ls -F | grep -Ev '/|@|*|=|>|\|'

ऊपर कमांड केवल फाइलें प्रदर्शित करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.