Nasıl yinelemeli olarak bulmak ve alt dizinleri ve saatleri ile bir dizindeki en son değiştirilen dosyaları listeler.
İşletim sistemi: Linux
Dosya türü: ext3
Tercih edilen çözüm: bash (komut/oneliner), ruby, python
Bunları birkaç alt dizinleri ve dosyaları ile birkaç dizinleri var. Ben bir liste tüm bu dizinler oluşturulur bir yol gibi her birinci düzey dizin listede bir sonraki için tarih ve saat en son oluşturulan/değiştirilmiş bir dosya içinde.
Ben bir dosya touch veya içeriğini birkaç alt seviyeleri aşağı değiştirirseniz netleştirmek için, bu zaman damgası, birinci düzey dizin adının yanında görüntülenir. Bir dizinin böyle: yapısal var
./alfa/beta/gamma/example.txt
ve ben dosya içeriğini '' zaman birinci düzey 'alfa' insan okunabilir biçimde, epoch. dizinin yanında görüntülenen ihtiyacım var example.txt değiştir Denedim bazı şeyleri kullanarak, xargs, sıralama ve seviyor ama ben alamıyorum sorunu bu dosya zaman damgası 'alfa' değiştirmez ben oluştur/Düzenle dosyaları birkaç kat aşağıda.
CEVAP
Şunu deneyin:
#!/bin/bash
find $1 -type f -exec stat --format '%Y :%y %n' "{}" \; | sort -nr | cut -d: -f2- | head
Özyinelemeli (boşluk içeren dosya adlarını destekler) tarama başlayacaktır dizini yolu ile çalıştırmak.
Dosyaları bir sürü şey dönmeden önce biraz zaman alabilir. Performans ise adları boşluklarla dosyaları desteği bizde olsa geliştirilebilir. Bu durumda kullanabilirsiniz:
#!/bin/bash
find $1 -type f | xargs stat --format '%Y :%y %n' | sort -nr | cut -d: -f2- | head
biraz daha hızlı olan.
LİNUX dizinleri Özyinelemeli olarak se...
Nasıl yinelemeli bir dizindeki en son ...
Geçerli dizindeki tüm dosyaları için y...
Özyinelemeli olarak Java ile bir dizin...
Nasıl dosyaları zaman uyumsuz olarak y...