ติดตั้งcoreutils
กับ Homebrew และนามแฝงll
ไปgls -Flh --group-directories-first
แทน
brew install coreutils
ติดตั้ง GNU Coreutilsในกรณีที่ไม่ได้ติดตั้ง
- ใช้ใน
alias ll='gls -Flh --group-directories-first'
(หากคุณต้องการใช้ไฟล์เดียวกันในระบบปฏิบัติการทั้งสองดูด้านล่าง).bashrc
.bashrc
ใน Ubuntu ls
ให้บริการโดย GNU Coreutilsซึ่ง Ubuntu มีอยู่เสมอ นั่นเป็นเหตุผลที่ls
รองรับ--group-directories-first
ใน Ubuntu อาจเป็นไปได้ว่าคุณเคยใช้ GNU Coreutils เวอร์ชันของls
บน macOS มาก่อนเช่นกันซึ่ง Homebrew ติดตั้งเหมือนgls
แต่สามารถใช้งานได้ls
หลายวิธี
ls
เป็นคำสั่งภายนอกไม่ใช่ Bash ในตัว การใช้เวอร์ชันอื่นหรือบิลด์ของ Bash ไม่ควรกระทบกับมัน ฉันไม่แน่ใจว่าเกิดอะไรขึ้นเมื่อคุณอัปเกรด Bash โดยใช้ Homebrew บางทีมากกว่า Bash ก็อัพเกรดเช่นกัน บางทีคุณอาจมีls
ฟังก์ชั่นเชลล์หรือชื่อแทนที่กำหนดไว้ในไฟล์กำหนดค่าส่วนกลางที่ถูกแทนที่ บางทีคุณอาจมีลิงก์สัญลักษณ์ls
ที่ชี้ไปgls
และเขียนทับ บางทีคุณอาจจะมีอะไรแบบนั้น แต่คุณ$PATH
เปลี่ยนไป ไม่ว่าจะเกิดอะไรขึ้น GNU Coreutils ls
สนับสนุน--group-directories-first
และเปลี่ยนไปใช้มัน (เพราะฉันเชื่อว่า bmike กำลังแนะนำ ) ควรแก้ไขปัญหาของคุณ
หากด้วยเหตุผลบางอย่างที่คุณต้องการใช้.bashrc
ไฟล์เดียวกันแน่นอนในทั้งสองระบบมีวิธีที่เป็นไปได้สองสามประการ คุณสามารถสร้าง symlink, wrapper script, shell function, หรือ (เพราะ Bash alias ส่วนขยายนั้นไม่ใช่แบบ nonrecursive) shell alias สำหรับgls
ระบบ Ubuntu ของคุณ แต่ผมขอแนะนำให้แทนการตรวจสอบที่ OS ที่ถูกนำมาใช้.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
หรือหากคุณพบว่าคุณชอบที่จะเรียกใช้ Coreutils 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'
(ขอบคุณไปที่soroushjpสำหรับการจับข้อผิดพลาดในสคริปต์รุ่นก่อนหน้านี้)
ls
หรือ macOSls
หรือไม่? คุณเคยลองอีกไหม?