LS çıktısında son güncellenen üç dosyayı vurgulayın


10

lsEn son değiştirilen üç dosyayı vurgulamak / altını çizmek / başka şekilde açık hale getirmek için komutu aşırı yüklemenin veya sarmanın bir yolu var mı ?

Ben sadece ls -rtlters modifikasyon zamanı ile sipariş edebilirsiniz biliyorum , ama ben kendim veya başka bir geliştirici son dosyayı hızlı bir şekilde tanımlamak istiyorum rağmen genellikle dosyaları alfabetik bir listesine ihtiyacım var .

Yanıtlar:


15

Aşağıdakiler benim için çalışıyor gibi görünüyor

 grep --color -E -- "$(ls -rtl | tail -n3)|$" <(ls -l)

Girdi üzerinde vurgu ile grep kullanır ls -lve en eski üç komut için girişlerden birini aramak için normal bir ifade kullanır. Ayrıca $tüm dosyayı yazdırmak için satır sonu arar .

Aynı işlevi lll *, tıpkı kullandığınız gibi birden çok argümanla kullanabileceğiniz şekilde bir işleve koyabilirsinizls

function lll ()
{
    command grep --color -E -- "$(ls -rtl $@ | tail -n3)|$" <(ls -l $@)
}

1
+1: Bu , sonunda geldiğim çılgın tek astardan çok daha güzel:ls -l | grep --color=ALWAYS -C 1000 -E `ls -rt | tail -n 3 | perl -0777 -e '$x=join("|",split(" ",<>));print $x'`
ire_and_curses

2
Bu gülünç derecede destansı. : D
whoami

Mükemmel iş. Bunu üçten az dosya içeren bir dizinde denerseniz, bir "grep: Geçersiz aralık sonu" hatası alıyorum.
Jason R

1
@dotancohen Rica ederim, meydan okuma için teşekkürler :)
Bernhard

1
function lll () { command grep --color -E -- "$(ls -rtl $1 | tail -n3)|$" <(ls -l $1) }Bu işlevle, argüman olarak bir dizin verebilirsiniz, yani lll /home@dotancohen
Bernhard

4

Son üç değiştirilmiş dosyayı vurgulamayacaktır (güvenilir bir şekilde başarmak oldukça zor bir şeydir), ancak ls++istediğiniz için yeterli olabilir. Dosyaları göreceli yaşa göre vurgular, saniye, saat, gün veya ay renkli dosyalara göre gruplandırır.

ls ++ ekran görüntüsü

Renkleri, üzerinde çalışma eğiliminde olduğunuz zaman ölçeğini daha belirgin hale getirecek şekilde yapılandırabilirsiniz (etkin kodlama için, saatlere karşı günler benim için en önemli geçiş noktasıdır).


Güzel, teşekkürler. Ancak, genellikle paketleri yükleyemediğim sunuculara SSHing yapıyorum.
dotancohen

1
@dotancohen Tek bir perl betiği, ana dizininize ( ~/binya da bir şeye, profilde PATH'inize ekleyebilirsiniz) yükleyebilmeniz gerekir - ancak yüklü olmayan bağımlılıklar varsa bu işe yaramaz.
Random832

Anlıyorum, teşekkürler Rastgele! Aslında genellikle içinde bir şey var $HOME/bin/.
dotancohen
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.