ฉันจะรับ ls --color = auto เพื่อทำงานบน Mac OS X ได้อย่างไร


69

ฉันพยายามย้ายการกำหนดค่า bash ของฉันจาก Ubuntu ไปยัง Mac OS X และดูเหมือนว่า ls จะแตกต่างกันเล็กน้อย ตัวอย่างเช่นจะไม่ยอมรับ--colorตัวเลือก

ฉันจะทำให้เรื่องนี้ทำงานได้อย่างไร


คำตอบ:


78

lsจริง ๆ แล้วแยกจาก Bash Mac OS X มีเวอร์ชัน BSD lsซึ่งต้องการ-Gในบรรทัดคำสั่งหรือCLICOLOR(และอาจจะLSCOLORS) ในสภาพแวดล้อม

ดูman lsข้อมูลเพิ่มเติม


5
เหมือนกัน ฉันได้alias ls='ls -G'ตั้งค่า. bashrc ของฉันบน Snow Leopard แล้ว
ayaz

ด้วยเหตุผลบางอย่างCLICOLOR=Yหยุดทำงานบน Mac ของฉัน alias ls='ls -G'จะบังคับlsให้สีสัน ฉันกำหนดสิ่งนี้สำหรับเทอร์มินัลเชิงโต้ตอบเท่านั้น
DKroot

31

เปิดหน้าต่างเทอร์มินัลแล้วพิมพ์:

alias ls='ls -G'

จากนั้นก็ตีแล้วEnterเสร็จ!


10

ใช้Homebrew

brew install coreutils

โปรดทราบว่าสิ่งนี้จะเป็นการใส่คำนำgหน้าของคำสั่งทั้งหมด (เช่นglsสำหรับls) มันให้ตัวเลือกในการแหล่งไฟล์ที่จะนามแฝงเหล่านี้ให้คุณโดยอัตโนมัติ

ฉันไม่แน่ใจว่ามีตัวเลือกในการติดตั้งโดยตรงโดยไม่ต้องทำนามแฝงทั้งหมดหรือไม่ดังนั้นใน MacPort ที่ติดตั้งและทำสิ่งนี้แทน


1
ผลลัพธ์บอกว่า: ถ้าคุณต้องการใช้คำสั่งเหล่านี้กับชื่อปกติคุณสามารถ ...ทำไมมันถึงเน้นจริง ๆ ? ข้อเสียคืออะไร?
z0r

และคุณไม่เคยเก็บไว้หน้าของคุณใน archive.org และตอนนี้การเชื่อมโยงของคุณในวรรคสุดท้ายของคุณจะหายไป
barlop

5

ความเข้ากันได้สำหรับ GNU และ * BSD / darwin ls

~ / .profile

#for *BSD/darwin
export CLICOLOR=1

ls --color=auto &> /dev/null && alias ls='ls --color=auto' ||

~ / .bashrc (ฉันจำไม่ได้ว่า bash บน Linux จะอ่าน ~ / .profile เสมอ แต่ไม่ใช่ zsh ของฉันใน ARCH)

[[ -f $HOME/.profile ]] && source $HOME/.profile

6
คุณอธิบายรหัสนี้ได้หรือไม่
bwDraco

1
การตั้งค่าตัวแปรสภาพแวดล้อม CLICOLOR สำหรับระบบ * BSD และ Darwin - หากตั้งค่า ls และยูทิลิตีอื่น ๆ อาจใช้สีได้ แต่ GNU ls (สำหรับ Linux) จะไม่สนใจมัน ถ้า "ls --color = auto" จะไม่ล้มเหลว (ออกจากสถานะ = 0) - เรามีเวอร์ชัน GNU ของ ls และสร้างนามแฝงเพื่อวาดรหัสสีในโหมดการโต้ตอบถ้ามันล้มเหลว - เราไม่ต้องการนามแฝงเนื่องจาก CLICOLOR ตัวแปร. "&> / dev / null" เพียงแค่ไม่แสดง stderr และ stdout หากมีบางอย่างล้มเหลวหรือไม่เป็นผล ใช้งานได้กับ linux และ osx ของฉัน (ps ทุบตีบน osx และ freebsd ไม่ได้อ่าน. bashrc ดังนั้นให้ใส่ใน. profile แล้วแก้ไขมัน)
Victor Gavro

2

คุณจะต้องติดตั้งรุ่นlsอื่น สิ่งที่มักใช้ใน linux นั้นมาจากโครงการGNU coreutils

คุณสามารถสร้างและติดตั้งหรือติดตั้งจากMacPorts , Finkหรือhomebrew


4
ในความคิดของฉัน คุณไม่จำเป็นที่จะต้องติดตั้งรุ่นที่แยกต่างหากจากเมื่อคุณลักษณะเดียวกันได้รับการสนับสนุนแตกต่างกันเล็กน้อยในรุ่นที่มีอยู่ls ls
ayaz

จุดดี. จากนั้นอีกครั้ง ls สีไม่เคยมีรสนิยมของฉัน alias ls='ls -F'
Doug Harris

alias ls='ls -FG'- มันเป็นสิ่งที่ดีที่สุดของทั้งสองโลก!
mipadi

1
ฉันทำสิ่งนี้โดยใช้ homebrew มันไม่ได้เกินกำลังหากคุณใช้ทั้งคอมพิวเตอร์ Mac และ * ระวังและต้องการให้เทอร์มินัลของคุณมีลักษณะเหมือนกัน - สิ่งนี้ช่วยให้คุณสามารถใช้ไฟล์กำหนดค่าเดียวกันในคอมพิวเตอร์ทุกเครื่อง มันติดตั้งเป็นglsและไม่ได้แทนที่ต้นฉบับดังนั้นจึงไม่มีข้อเสีย
senderle

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.