क्या फ़ाइलों को प्रदर्शित करने के लिए नियंत्रित करना


10

मैंने हाल ही में फ़ाइल नाम पर एक डॉट प्रिपेंड करके बैकअप फ़ाइलों को छिपाने के लिए अपने इमैक कॉन्फिगर को बदल दिया है। यह मुझे सोचने के लिए मिला - क्या बैश के भीतर व्यवहार को बदलने के लिए एक तैयार तरीका है कि क्या फाइलों को छिपाने के लिए मनमाना ग्लोब की सूची का उपयोग किया जाए? बैश और एलएस मैन पृष्ठों का एक त्वरित स्कैन कुछ भी नहीं बदल गया।


आपका मतलब है, उदाहरण के लिए lsसभी फाइलों को नजरअंदाज करना चाहिए ignore-जो अंत में या सभी फाइलों के साथ शुरू होती हैं .bak?
केविन

हां, अधिमानतः वाइल्डकार्ड पैटर्न के साथ मेल खाने की क्षमता के साथ, अनदेखा करें - *। बक, आदि
टिम ब्रिघम

जवाबों:


9

lsएक --hide=PATTERNविकल्प है जो दिखता है कि यह वही करता है जो आप चाहते हैं और उन्हें -aया उनके साथ दिखाने के लिए ओवरराइड किया जा सकता है -A। यदि आप चाहते हैं कि यह स्वचालित रूप से हो, तो अपने ~/.bashrc(या संभावित मामले में इसके लिए पहले से ही एक उपनाम है) में एक उपनाम जोड़ें, इसे उस उपनाम में जोड़ें)।

$ touch {a,b,c}-{1,2,3}
$ ls
a-1  a-2  a-3  b-1  b-2  b-3  c-1  c-2  c-3
$ ls --hide=a*
b-1  b-2  b-3  c-1  c-2  c-3
$ ls --hide=*1
a-2  a-3  b-2  b-3  c-2  c-3
$ ls --hide=a*1
a-2  a-3  b-1  b-2  b-3  c-1  c-2  c-3
$ ls --hide=a*1 -A
a-1  a-2  a-3  b-1  b-2  b-3  c-1  c-2  c-3

वहाँ भी है --ignore=PATTERNकि एक विकल्प -aऔर -Aविकल्प से अतिरंजित नहीं है ।


जवाब के लिए धन्यवाद, मेरे पास बस एक सवाल है: ls --hide=*1 a*कुछ भी क्यों नहीं छिपाया जाता है, लेकिन फिर भी तीनों को सूचीबद्ध करता है a-1 a-2 a-3? मैं इसे छिपाने के लिए उम्मीद की होगी a-1?
sdaau

1
a*खोल से विस्तार किया है और भी शामिल है a-1। छिपाने का विकल्प स्पष्ट रूप से तर्कों के रूप में नामित फ़ाइलों को अनदेखा नहीं करता है।
केविन

0

यहाँ मेरा उपनाम है ls:

alias ls="ls --color=auto --hide='*~' --hide='#*#'"

वह फाइल को छुपाता है जैसे backup.c~और #autosave.h#। (और, जैसा कि मैं हूं, मुझे रंग पसंद हैं, इसलिए यह ऐसा ही करता है।)

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