केवल फाइलों को शुरू करें। (छिपा हुआ)


11

मैंने केवल छिपी हुई फ़ाइलों को प्रदर्शित करने की कोशिश की, लेकिन यह नहीं पता कि यह कैसे करना है।

यह काम कर रहा है (लेकिन मिलान अन्य स्थानों में भी डॉट्स)

ls -la | grep '\.'

जोड़ने की कोशिश कर रहा ^था, लेकिन समाधान नहीं मिला।


1
पार्सिंग lsकभी भी एक अद्भुत विचार नहीं है, लेकिन अगर आपने ^मैच की शुरुआत को निरूपित करने के लिए लंगर का उपयोग किया है तो आपने क्या काम किया होगा । ls -la | grep '^\.'
devnull

3
नहीं, यह फ़ाइल नाम -l ध्वज के साथ लाइन की शुरुआत नहीं है। ls -la | awk '$9 ~ /^\./'मर्जी।
योनीक्स

जवाबों:



5
find . -type f -name '\.*' -print 

यदि आप चाहते हैं कि निर्देशिका पदानुक्रम में प्रत्येक छिपी हुई फ़ाइल को नीचे सूचीबद्ध करें।


2

यदि आप lsआउटपुट पार्स करना चाहते हैं , तो आपको ^regex की शुरुआत में जोड़ना होगा और -lविकल्प का उपयोग नहीं करना चाहिए । -lप्रत्येक लाइन आउटपुट का उपयोग फ़ाइल या फ़ोल्डर की अनुमति जानकारी के साथ शुरू होता है, फ़ाइल या फ़ोल्डर का नाम नहीं। तो आपको इस तरह का उपयोग करना चाहिए:

ls -Ad | grep '^\.'

या आप printfबैश बिलिन के साथ कर सकते हैं :

printf "%s\n" .*

यदि आप उपयोग करते हैं zsh, तो आप उपयोग कर सकते हैं:

print -l .*

1

यहां केवल छिपी हुई फ़ाइलों को खोजने के दो अन्य तरीके हैं।

find . -maxdepth 1 -name ".*" -type f -ls

या

find . -maxdepth 1 -name ".*" -type f -printf "%P \n"

-maxdepthयह निर्दिष्ट करने के लिए उपयोग करें कि आप निर्देशिका ट्री में कितनी दूर खोजना चाहते हैं।


1

Flup के उत्तर पर एक सुधार :

ls -lad .[!.]* ..?*

यह उन सभी फाइलों को सूचीबद्ध करेगा, जिनका नाम डॉट से शुरू होता है और जो न तो हैं .और न ही हैं ..

ध्यान दें कि अगर आप पाइप के उत्पादन चाहते lsकरने के लिए grep(जो, devnull द्वारा उठाई बाहर के रूप में , एक अच्छा विचार नहीं है), सुनिश्चित करें कि आप का उपयोग कर \lsया command lsयदि क्योंकि lsएलियास है आप रंग का उत्पादन दिखाने के लिए (के रूप में यह उदाहरण के लिए डेबियन पर है) , इसके आउटपुट में रंगीन आउटपुट बनाने के लिए ANSI एस्केप सीक्वेंस होते हैं, जो आपके grepपैटर्न को लाइन की शुरुआत में एंकर करने पर आपके ट्रिप कर देगा ।


1
आप उपयोग कर सकते हैं -A(बजाय -a) की अनदेखी करने ., ..
OJFord

@ OJFord + उन निर्देशिकाओं -Aसे अलग है -aजो lsनीचे उतरती हैं, लेकिन दोनों (समान रूप से) -dप्रभाव में कमांड लाइन पर निर्दिष्ट नामों के लिए उपेक्षित और बेकार हैं । इसके अलावा, यदि lsको एलियास किया गया --color=auto तो पाइपिंग ठीक है; केवल --color=alwaysया --colorपरेशानी का कारण बनता है।
dave_thompson_085

0

Val0x00ff का समाधान वास्तव में अच्छा है, लेकिन यह छिपी हुई निर्देशिकाओं को भूल जाता है।

यदि आप छिपी हुई फ़ाइलें और छिपा निर्देशिका चाहते हैं , बिना। तथा .. :

find -maxdepth 1 -regex '\./\..+' -printf "%P\n"

आपका सुझाव VMware ESXi (सूची नो फाइल्स और नो डाइरेक्टरीज़) पर फेल हो जाता है और लिनक्स पर भी फेल हो जाता है। find . \( -type f -o -type d \) -name '\.*' -print; maxdepthजहां जरूरत हो वहां आवेदन करें ।
जीरो वेर्ट प्लिमर्स

0

एक नीचे बहुत कॉम्पैक्ट है और कई वेरिएंट का समर्थन करता है

1) छिपी हुई फ़ाइलों, निर्देशिकाओं और उप-निर्देशिकाओं को प्रदर्शित करें

find . | grep "^\./\."

2) केवल छिपी निर्देशिका और उप-निर्देशिका प्रदर्शित करें

find . -type d | grep "^\./\."

3) केवल वर्तमान और उप-निर्देशिकाओं में छिपी हुई फ़ाइलें प्रदर्शित करें

find . -type f | grep "^\./\."

4) वर्तमान फ़ोल्डर में छिपी हुई फ़ाइलों और निर्देशिकाओं को प्रदर्शित करें

find . -maxdepth 1 | grep "^\./\."


0

तुम कोशिश कर सकते हो:

find . -maxdepth 1 -type f -name '\.*' -print
find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -print

बेशक आप विभिन्न maxdepthमूल्यों का उपयोग कर सकते हैं या इसे पूरी तरह से हटा सकते हैं । यदि आप निर्देशिकाओं ( -type d) या नियमित फ़ाइलों ( type f) या दोनों के बीच अन्वेषण करना चाहते हैं , और अन्य कार्यों के साथ संयोजन करना चाहते हैं तो बहुत उपयोगी है :

(उदा। अंतिम संशोधित समय, जो @piroux उदाहरण पर आधारित है - @ jeroen-wiert-pluimers द्वारा पूरा )

find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -exec stat -c %y {} \; -printf "%P\t"

-1

तुम कोशिश कर सकते हो :

ls -a |grep -E  "^\."

^ इंगित करता है कि यह regexp के साथ सामग्री की शुरुआत है


1
3 साल पहले के एक अन्य उत्तर का डुप्लिकेट ...
जेफ स्कॉलर

मैंने पिछला उत्तर देखा, यह डुप्लिकेट नहीं है, और निश्चित रूप से "ls -a" और "ls -Ad" का एक ही अर्थ नहीं है। "-a" का अर्थ है सभी फाइलें / निर्देशिकाओं सहित सूची "से शुरू होती है।" -इसका मतलब सूची को छोड़कर, लेकिन " , ".." और निर्देशिका सामग्री।
लिंग्जिंग फ्रांस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.