2016-04-07 19 views
1

Bir yedekleme komut dosyası içinde kullanım için Belirli bir zamandan beri değiştirilmiş olan tüm klasörleri bulmanın bir yolunu arıyorum. Bunun için var:Bash komut dosyası içinde değiştirilmiş dosyaları olan dizinleri bulun

find ./ -maxdepth 1 -mtime -1 -type d 

Maalesef bu herhangi bir sonuç vermez, dizinleri beri kendisi dizinlerin bazı dahilinde sadece içeriğini modifiye edilmemiştir.

repodir=/somepath 
backupdir=/someotherpath 

find . -mtime -1 -type d -maxdepth 1|while read repo; do 
    svnadmin dump -q $repodir/$repo | bzip2 -9 > $backupdir/$repo-`date +%F`.dump.bz2 
done 

cevap

1

bu deneyin: tam komut dosyası artık

O değişti altdizinlere dosyaları arar
find . -mindepth 2 -type f -mtime -1 | sed 's,^\./,,;s,/.*$,,' | sort -u | \ 
while read repo; do 
    svnadmin dump -q $repodir/$repo | bzip2 -9 > $backupdir/$repo-`date +%F`.dump.bz2 
done 

, ardından yoldan ilk dizin bileşeni ama hepsi kapalı şeritler ve hiç sort -u kullanır kopyaları kaldırın. Ayrıca, sonuçlardan ilk ./'u çıkardığına dikkat edin, ancak bu parçayı gerçekten istemediğiniz/ihtiyacınız olmadığı anlaşılıyor.

+0

Teşekkürler, ben de bu yönde düşünüyordum, ama sed kısmını doğru alamadım. Bu mükemmel çalışıyor! – Frank

İlgili konular