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
अगर आप देखभाल करते हैं, तो आप -u
mod time के बजाय एक्सेस टाइम के अनुसार सॉर्ट करेंगे।