find $DIR -depth -maxdepth 3 \
-type d -readable -printf \
'printf "\\n%p\\n"
ls -t --color=always "%p"\n' |\
. /dev/stdin 2>&-
यह किसी भी तर्क सूची की समस्याओं से बचा जाता है क्योंकि एकमात्र तर्क जो lsकभी भी प्राप्त होगा वह उस निर्देशिका का नाम है जिसे आप सूचीबद्ध करना चाहते हैं। आप अपनी मर्जी से ऐसा कुछ भी कर सकते हैं।
शेल सिर्फ शेल स्क्रिप्ट . sourcesके |pipeरूप में - यह एक ही प्रक्रिया है और आपके पास समस्याएँ नहीं हैं जिन्हें आप execveकॉल कर सकते हैं ।
किसी भी मामले में - उपरोक्त केवल तीन-गहरा होता है जो कि बदलकर समायोज्य होता है maxdepth। यह पहले भी गहरा है - इसलिए आप अपनी वर्तमान निर्देशिका से अपने तरीके से पीछे की ओर काम करते हैं depth।
आप देख सकते हैं कि आपको भी $LSCOLORS- मेरी मशीन पर यह बड़े करीने से मुद्रित कॉलम और बाकी सब चीजें जो आप चाहते हैं ls- या उस चीज के लिए, जो कुछ भी आप कल्पना कर सकते हैं कि आप चाहते हैं, प्रदान करता है. source.
सं SVN
फिर, यह कुछ भी आप की उम्मीद करेंगे ls। इसलिए .svnफाइल को छुपाना उतना ही सरल है जितना कि lsलाइन को बदलना :
ls -t --color=always --hide="*svn" "%p"\n
या यदि आप svnप्रत्येक फ़ोल्डर में एक्सटेंशन देखना चाहते हैं, लेकिन ./svnआप इसे बदल सकते हैं तो पूरा कमांड इस तरह दिखता है:
find $DIR -depth -maxdepth 3 \
-type d -readable -printf \
'printf "\\n%p\\n" ; hide=
[ "%p" = "./svn" ] && hide="*svn"
ls -t --color=always --hide="$hide" "%p"\n' |\
. /dev/stdin 2>&-
निजी तौर पर, मुझे यह पसंद है कि -sअगर आप देखभाल करते हैं, तो आप -umod time के बजाय एक्सेस टाइम के अनुसार सॉर्ट करेंगे।