एलएस उर्फ ​​में केवल छिपी हुई फाइलें (डॉट फाइलें) दिखाएं


42

मैं कमांड का उपयोग कर रहा हूं

ls -a | grep '^\.'

केवल छिपी हुई फ़ाइलों को दिखाने के लिए। मैंने लाइन जोड़ दी

alias hidden='ls -a | grep '^\.'' # show only hidden files

करने के लिए .bash_aliasesफ़ाइल

लेकिन यह काम नहीं करता है। यह शायद 'चरित्र के साथ समस्या है ।

क्या आप कृपया सही उपनाम लिखने में मेरी मदद कर सकते हैं?


ऐसे उदाहरणों के साथ जो और भी जटिल हैं, आपको बहुत ही कम सिंगल से डबल-कोट्स में स्विच करना होगा। यह सिर्फ एक दूसरे के खिलाफ उद्धरण चिह्नों द्वारा किया जा सकता है। इस उदाहरण के लिए, यह 'ls -a | grep '"'"'^\.'"'"'ऐसा प्रतीत होगा कि यह भयानक है (और इस उदाहरण के लिए यह पूरी तरह से अनावश्यक है क्योंकि आप दोनों में से किसी भी जोड़े के लिए दोहरे उद्धरणों को स्वैप कर सकते हैं), लेकिन बहुत कम अवसरों पर यह उपयोगी है। आप -Cध्वज (बल बहु-स्तंभ आउटपुट) भी चाह सकते हैं । इस छवि को देखें imgur.com/a/VIVFP
डायलन

जवाबों:


26

या तो उद्धरणों की आंतरिक जोड़ी को दोहरे उद्धरण बनाएँ:

alias hidden='ls -a | grep "^\."'

या उद्धरणों की बाहरी जोड़ी को दोहरे उद्धरण दें:

alias hidden="ls -a | grep '^\.'"

या सभी उद्धरणों को दोहरा उद्धरण दें और आंतरिक जोड़ी से बाहर निकलें:

alias hidden="ls -a | grep \"^\.\""

या इसे एक फ़ंक्शन बनाएं, ताकि आप कॉल करते समय कुछ तर्क पारित कर सकें:

hidden() { ls -a "$@" | grep '^\.'; }

90

शेल की सूची डॉट फाइलें हों, और lsनिर्देशिकाओं के माध्यम से न देखने के लिए कहें :

ls -d .*

6
यह grep-based दृष्टिकोण के विपरीत, मल्टी-कॉलम लिस्टिंग की अनुमति देने का लाभ है ।
अनिल

हालाँकि, निर्देशिका (जैसा कि उल्लेख किया गया है) भी दिखाता है। किसी भी तरह से इसे सरल रखने के लिए और केवल फ़ाइलों को दिखाने के लिए?
१०:१६ को

@honzajde सवाल निर्देशिका को बाहर करने के लिए नहीं पूछा था। यदि आप निर्देशिकाओं को बाहर करना चाहते हैं, तो आप ls -d .* | grep -v '^d'(केवल zsh) का उपयोग कर सकते हैंprint -lr .*(.)
गाइल्स का SO- बुराई करना बंद करें '

यह मेरे लिए काम नहीं करता, Ubuntu 16.04 पर
एंड्रयू_1510

9
ls -Ad .* #This will list all the hidden files & directories while retaining the color & formatting

या

उसी का एक उपनाम बनाने के लिए:

alias lh='ls -Ad .*'

या

एक ही चीज़ को grep कमांड और पाइप ऑपरेटर के माध्यम से किया जा सकता है; हालांकि यह रंग और स्वरूपण को ढीला कर देगा:

ls -a|grep "^\." 

या

अन्य नाम:

alias lh='ls -a|grep "^\."'

4

आप दोहरे उद्धरण चिह्नों का उपयोग कर सकते हैं:

alias hidden="ls -a | grep '^\.'"

या अधिक एकल उद्धृत स्ट्रिंग्स को संक्षिप्त करें

alias hidden='ls -a | grep '\''^\.'\'

या सभी आंतरिक उद्धरणों को हटा दें

alias hidden='ls -a | grep ^\\.'

2

रिकॉर्ड के लिए यह मेरे साथ काम नहीं करता है, क्योंकि ls -aदो प्रिंट (कभी-कभी अधिक कॉलम)। मैं -1यह सुनिश्चित करने के लिए विकल्प का उपयोग करने की सलाह दूंगा कि हर फाइल अपनी लाइन में है। कुछ इस तरह:

alias hidden='ls -a1 | grep "^\."'

मैंने अभी कोशिश की है ls -a | catयह अभी भी 2 कॉलम पर आउटपुट करता है। मुझे उल्लेख करना चाहिए कि मैं सोलारिस का उपयोग कर रहा हूं न कि जीएनयू एलएस का। शायद इसीलिए। सभी मामलों में आपके -1समाधान ने पूरी तरह से काम किया और मेरे हैकिश वर्कअराउंड की तुलना में बहुत अधिक सुरुचिपूर्ण है। मैं अपना जवाब अपडेट कर रहा हूं।
रहमू

मैं शायद इस चर्चा से चूक गया, लेकिन यहाँ देखो कि क्या कुछ गलत होगा।
xralf

1

इसे थोड़ा और अधिक जटिल बनाना, लेकिन पार्सिंगls से बचना ।

llsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -ls; }

lsh () { find "${@:-.}/" -maxdepth 1 -type f -name ".*" -print; }

दो शेल फ़ंक्शन findवर्तमान निर्देशिका में या कमांड लाइन पर दी गई निर्देशिका में सभी छिपी हुई नियमित फ़ाइलों की सूची बनाने के लिए उपयोग करेंगे ।

llshसमारोह उत्पन्न होगा एक "लंबे समय लिस्टिंग" जो केवल थोड़ा अधिक से वर्बोज़ हो जाएगा ls -l, जबकि lshतरह की प्रविष्टि के एकल-स्तंभ उत्पन्न करता है ls -1


0
find . -type f -name ".*"

या

find . -type f -name ".*" | while read file; do basename $file; done

नमस्ते! आप अपने जवाब को विस्तार से बता सकते हैं कि यह कैसे काम करता है, और यह भी उल्लेख करके कि आपकी राय में, यह सवाल का जवाब क्यों देता है।
dhag

0
# add it to ~/.bashrc

    hidden() {  # lists hidden files and directories
        find . -maxdepth 1 -name '.?*' -exec ls --color -d {} \;
        }

    hiddenfiles() { # lists hidden files
        find . -maxdepth 1 -type f -name '.?*' -exec ls --color -d {} \;
        }

    hiddendirs() { # lists directories
        find . -maxdepth 1 -type d -name '.?*' -exec ls --color -d {} \;
        }

-1

क्या आपका lsसमर्थन- से man ls:

    -a, --all
          do not ignore entries starting with .

   -A, --almost-all
          do not list implied . and ..

$ ls --version
ls (GNU coreutils) 8.5
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  
Written by Richard M. Stallman and David MacKenzie.

हाँ, यह करता है, लेकिन मैं onlyछिपी हुई फाइलें चाहता था ।
xralf

ls -A -1 -d -F .* | egrep -v '/$'
21

-3

बस नीचे दिए गए कमांड टाइप करें और ऊपर बताए गए सामान के साथ भ्रमित न करें।

ls -A -1 -d -F .* | egrep -v '/$'

मुझे लगता है कि ओपी ने कहा कि कैसे एक उर्फ ​​को ठीक से लिखना है।
काउंटर

1
यह सिर्फ उसके जवाब पर वाल्टिनेटर की टिप्पणी की एक प्रति है। इस उत्तर के लिए उपयोगी होने के लिए, आपको यह समझाने की आवश्यकता है कि उन विशेष lsझंडों और egrepआदेशों के प्रश्न का उत्तर कैसे और क्यों दिया गया है।
एंथनी जी -

-3
ls -lart | sed -n "/ \.[A-Za-z0-9][A-Za-z0-9]*/p"

2
क्या आप अपना उत्तर स्पष्ट कर सकते हैं, कोड की एक पंक्ति को अच्छे उत्तर के रूप में नहीं गिना जाता है
रोमियो निनोव

आवश्यकता के अनुसार उसे केवल छिपी हुई फाइलों को सूचीबद्ध करने की आवश्यकता है। इसलिए मेरे पास ls -lart द्वारा छिपी हुई फाइलों सहित सभी फाइलों की सूची है। फिर मैंने उस फ़ाइल को दिखाने के लिए regex का उपयोग किया है जो डॉट (।) के साथ शुरू होती है। मैं इस तरह से चौकी गया हूं।
शैलेश चंदेरिया

[g906016 @ hklu2574881: [PTA] ~] $ ls -lart | sed -n "/ \। [A-Za-z0-9] [A-Za-z0-9] * / p" -rw-r - 1 g906016 g906016 658 Dec 29 2016 .zshrc -rw- r - r-- 1 g906016 g906016 171 दिसंबर 29 2016 .kshrc -rw ------- 1 g906016 g906016 27 दिसंबर 29 2016 2016 .k5login -rw-r - r-- 1 g906016 g906016 176 Dec 29 2016। bash_profile -rw-r - r-- 1 g906016 g906016 18 दिसंबर 29 वर्ष 2016 .bash_logout -rwxr-XR-एक्स 1 g906016 g906016 0 दिसंबर 29 वर्ष 2016 .dir_colors drwxr-x --- 3 g906016 g906016 4096 29 दिसंबर वर्ष 2016 .subversion
शैलेश चंदेरिया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.