Ls veya ağacın çıktısını daha az kaybederek boruları renk kaybeder mi?


12

treeve lsdosya adlarını farklı renklendirerek dosya türlerini ayırt edebilir.

treeve lsgenellikle dosyaların uzun bir listesini (dizinler dahil) çıktı, bu yüzden stdout çıktı boru less.

Ancak lessrenkleri korumaz. Renkleri veya bazı alternatif yolları göstermesini nasıl sağlayabiliriz?

Sadece bağlantılı listeyi gördüm, ancak borulama çalışıyor less -Rveya less -rçalışmıyor. İşletim sistemim Ubuntu 12.04. lessSürüm 444: 09 Haziran 2011'dir.


1
@JosephR. diğer soru yarı ilişkilidir ancak yinelenmez. Burada , çıkışın bir terminale gitmediğinde ( lstreeless -R
gerekliliğe

Denedin tree -C | less -Rmi Bu -Cseçenek ağacın daha az olanlara eşdeğer --color=alwaysolduğunu düşünüyorum (en azından benim için çalışır, Ubuntu 12.04'te).
steeldriver

@steeldriver teşekkürler. işe yarıyor. tek başına treeve -Ctek başına her zaman renkler çıktı, ama birlikte kullanıldıklarında neden farklılar less?
Tim

1.: 2 nedenlerini @Tim lessbunu vermedikçe varsayılan olarak kaldırır renkleri -Riçeri bırakmak söyler seçeneği ve 2. treeve lsbenzeri (ve diğer programlar genellikle onların çıkış başka bir programa gidiyor algıladığında kapalı boyama edecek less) -Cveya ile renklendirmeye zorlamadığınız sürece doğrudan terminalinize değil --color=always.
jw013

2
Bu ilgili liste hakkında ne yazıyorsunuz?
Anthon

Yanıtlar:


15

'Otomatik' modda renk kullanmayı ls --color=autosöyleyen kullandığınızı varsayacağım ls. 'Otomatik' mod lessSTDOUT'un bir terminal olup olmadığını söyler ve eğer öyleyse renk kullanın, aksi takdirde renk kullanmayın. Boru lshattına lessbağlandığınızda, STDOUT bir terminal değildir, lessnormal bir boru olan STDIN'e bağlanır .

Çözüm, ls --colorveya kullanın ls --color=always.

Ancak şimdi bu başka bir potansiyel soruna yol açıyor. Size bağlı olarak less, rengi göstermeyebilir, bunun yerine kaçış kodlarını gösterebilir. Çözüm kullanmaktır less -R. Bu, lessANSI renk çıkışları için kaçış kodlarından geçmeyi söyler . Kullanmak istemezsiniz, -rçünkü bu, etrafı saran uzun çizgilerle ilgili sorunlara neden olur, çünkü daha az çizgi uzunluğunu düzgün hesaplamaz.

Tam çözüm:

ls --color | less -R

Benzer şekilde tree:

tree -C | less -R
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.