स्थापित करें coreutilsHomebrew और उर्फ साथ llकरने gls -Flh --group-directories-firstके बजाय।
brew install coreutils यदि यह स्थापित नहीं है, तो GNU Coreutils स्थापित करता है।
- का प्रयोग करें
alias ll='gls -Flh --group-directories-first'में .bashrc।
(यदि आप .bashrcदोनों ऑपरेटिंग सिस्टम में एक ही फाइल का उपयोग करना चाहते हैं , तो नीचे देखें।)
उबंटू में, lsजीएनयू कोरुटिल्स द्वारा प्रदान किया जाता है , जो उबंटू में हमेशा होता है। इसीलिए उबंटू में lsसपोर्ट करता --group-directories-firstहै। संभवतः आप पहले भी macOS lsपर GNU Coreutils संस्करण का उपयोग कर रहे थे , जो कि Homebrew के रूप में स्थापित करता है, glsलेकिन जिसे lsकई तरीकों से प्रयोग करने योग्य बनाया जा सकता है।
lsएक बाहरी कमांड है, न कि बैश बिलिन। बैश के किसी भिन्न संस्करण या बिल्ड का उपयोग करने से इसे प्रभावित नहीं होना चाहिए। मुझे यकीन नहीं हो रहा है कि जब आपने होमब्रे का उपयोग करके बैश को अपग्रेड किया तो क्या हुआ। हो सकता है कि बाश से ज्यादा अपग्रेड भी मिले; हो सकता है कि आपके पास एकlsशेल फ़ंक्शन या उर्फ एक वैश्विक कॉन्फ़िगरेशन फ़ाइल में परिभाषित किया गया था जिसे बदल दिया गया था; हो सकता है कि आपके पास एक प्रतीकात्मक लिंकlsथा जो इंगित कियाglsगया था और ओवरराइट किया गया था; हो सकता है कि आपके$PATHपासअभी भी ऐसा कुछ हो, लेकिन आपकापरिवर्तन हो गया है। जो कुछ भी हुआ, ग्नू कोरुटिल्स lsका समर्थन करता है--group-directories-first , और इसे स्विच करना (जैसा कि मेरा मानना है कि bmike सुझाव दे रहा है ) को आपकी समस्या को ठीक करना चाहिए।
यदि किसी कारण से आप .bashrcदोनों प्रणालियों में सटीक एक ही फ़ाइल का उपयोग करना चाहते हैं, तो कुछ संभव दृष्टिकोण हैं। आप glsअपने उबंटू प्रणाली के लिए एक सिम्लिंक, रैपर स्क्रिप्ट, शेल फ़ंक्शन, या (क्योंकि बैश उर्फ विस्तार गैर-व्यापक है) शैल उपनाम बना सकते हैं। लेकिन मैं सुझाव देता हूं कि यह जांचने के बजाय कि किस ओएस का उपयोग किया जा रहा है .bashrc। यद्यपि आपको llप्रत्येक प्रणाली में परिभाषित एक अलग उपनाम मिलेगा , इस दृष्टिकोण को स्व-दस्तावेजीकरण होने का लाभ है। आपका .bashrcएक साल, या एक महीने में आप के लिए समझ में आ जाएगा।
if [ "$OSTYPE" == linux-gnu ]; then # Is this the Ubuntu system?
alias ll='ls -Flh --group-directories-first'
else
alias ll='gls -Flh --group-directories-first'
fi
या यदि आप पाते हैं कि आप आमतौर पर कोरुटिल्स चलाना पसंद करते हैं ls, भले ही आप llउर्फ का उपयोग नहीं कर रहे हों , तो आप lsएक उपनाम बना सकते हैं gls:
if [ "$OSTYPE" != linux-gnu ]; then # Is this the macOS system?
alias ls=gls
fi
alias ll='ls -Flh --group-directories-first'
( उस स्क्रिप्ट के पुराने संस्करण में गलती पकड़ने के लिए धन्यवाद सॉर्सहजप पर जाएं ।)
lsया macOS का उपयोग कर रहे हैंls? क्या आपने दूसरे की कोशिश की है?