Ls dosya listelerinde gizli dosyaları nasıl renklendirebilirim?


10

LS_COLORSortam değişkeni ls, dizinler, normal dosyalar, bağlantılar vb. gibi GNU coreutil'in komutu için farklı dosya türleri için renklere karar vermenizi sağlar . onlar için ekran rengi belirtme seçeneği yoktur.

lsGirişlerin gizli dosyaları farklı bir renkte göstermesini sağlamanın başka bir yolu var mı?


Bu cevapta bilmek istediğinizden daha fazlası var LS_COLORS. Dotfiles için nasıl çalışacağını anlayamadım ama kontrol etmek isteyebilirsiniz.
terdon

1
@terdon - dotfiles için çalışmaz. Bazıları için olabilir, ama çok az. Bir uzantının uzunluğunda bir sınır vardır ve tüm dosya adlarının çoğu uzantıyı aşacaktır. *.hideÖrneğin adlı dosyalar için çalışacaktır . Bu yanıt , dizinler için benzer bir soruna yöneliktir, ancak bu ve dizin sorununun yanıtları muhtemelen aynı değildir.
mikeserv

Yanıtlar:


1

Yalnızca ada göre sıralıyorsanız, bu yardımcı olabilir:

alias ll='LS_COLORS=$LS_COLORS:"di=0;34:" ; S_COLORS=$LS_COLORS:"fi=0;37:" ; export LS_COLORS; ls -dHhl --color=auto .*; LS_COLORS=$LS_COLORS:"di=1;94:" ; LS_COLORS=$LS_COLORS:"fi=1;37:" ; export LS_COLORS$

Ancak, ls komutunu biri gizli dosya ve klasörler, diğeri için olmak üzere iki bölüme ayırır.


0

Evet, kullanın cf. Ben sadece iyi belgelenmiş bir sürümünü yayımladı, özellikle dosya uzantısı ve / veya belirli özel nitelikleri (yürütülebilir, bağlantılar, gizli ve dizinler) başına ls çıktı renklendirir. Bi dene!!! Alıştıktan sonra bunu kullanmaktan vazgeçmek zor.

https://github.com/AdamDanischewski/cf


-1

Sadece gizli dosyaları (ve klasörleri) vurgulamak istiyorsanız ve diğer tüm dosyaların renklendirilmesini umursamıyorsanız, açık yaklaşım ls -la | grep -E "^| \.[^/|'.].*"

Diğer renkleri korumak istiyorsanız, işler $LS_COLORSzorlaşmaya başlar, çünkü gizli dosyaları göründüğü gibi yerel olarak renklendirmeyi desteklemez.

Geçerli dizinin gizli dosyalarını $LS_COLORSsahte değişken olarak ortam değişkenine dinamik olarak ekleme , sonra yürütme ls -lave bundan sonra dircolorsorijinal renk şemasını sıfırlamak için bir fikir buldum . Açıkçası, gizli bir dosya bilinen bir uzantıyla aynı ada sahipse bir çakışma olacaktır. Ayrıca bu yöntem gizli klasörlerle çalışmaz.

Uyarı: Bu çözüm (çok iyi test edilmemiş) bir saldırıdır. Kendi sorumluluğunuzdadır kullanın.

for h in $(ls -A | grep "^\."); do LS_COLORS="$LS_COLORS*$h=04;05:"; done; ls -la; eval $(dircolors)

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.