Yanıtlar:
MacOS'ta, lsGNU değildir lsve --color=alwaysLinux kullanıcılarının bu işlevsellik için bekleyebilecekleri seçeneği kabul etmez .
MacOS sürümünde ls, renkler iki değişken tarafından denetlenir : $CLICOLORve $CLICOLOR_FORCE. Birincisi tanımlanmışsa, tarafından belirtilen terminal $TERMrengi destekler ve çıktı bir terminale giderse, bu çıktı GNU'nun --color=autoseçeneğine benzer şekilde renklendirilir . İkinci değişken de tanımlanırsa, GNU'lar gibi davranarak nihai koşul kaldırılır --color=always.
Yani rengin geçmesi sediçin aşağıdakine benzer bir şeye ihtiyacınız olacak:
CLICOLOR_FORCE=1 ls -la | sed -En '/Desktop/q;p'
-Gtanımlamakla eşdeğerdir $CLICOLOR(ve bu nedenle yeterli değildir)
Ben körü körüne dağılımı, birçok gibi eşleyen bir takma adı olduğunu tahmin edersiniz lsiçin ls --color=auto. ls -la --color=always | sed …çalışmalı.
(Bu autoayar, genel olarak konuşursak, lsçıktısının ekrana gidip gitmediğini kontrol eder ve sadece ekran için renk verir. Bunun nedeni, rengin kaçış dizileri, yani görünmez komut karakterleri tarafından gerçekleştirilmesidir, bu nedenle bir program bunları karıştırabilir dosya adının bir kısmı için böyle şeyler.)
lsvar-Gyanı renk etkinleştirme seçeneğini, ama emin bir boru hattı nasıl davranacağını değilim.