@Steve Kehlet gönderisine bir yorum ekleyecekti ancak 50 rep (RIP) gerekiyor.
Bu gönderiyi çok sayıda googling aracılığıyla bulan herkes için, yalnızca belirli bir zaman aralığı verilen belirli dosyaları bulmanın bir yolunu bulmadım, aynı zamanda katranlama hatalarına neden olabilecek göreli yolları VEYA beyaz boşlukları da dahil etmedim. (ÇOK TEŞEKKÜRLER STEVE.)
find . -name "*.pdf" -type f -mtime 0 -printf "%f\0" | tar -czvf /dir/zip.tar.gz --null -T -
.
göreceli dizin
-name "*.pdf"
pdf'leri (veya herhangi bir dosya türünü) arayın
-type f
aranacak tür bir dosyadır
-mtime 0
son 24 saatte oluşturulan dosyaları ara
-printf "%f\0"
Normal -print0
VEYA -printf "%f"
benim için işe yaramadı. Man sayfalarından:
Bu alıntı, GNU ls ile aynı şekilde yapılır. Bu, -ls ve -fls için kullanılanla aynı alıntı mekanizması değildir. Bul'un çıktısı için hangi formatı kullanacağınıza karar verebiliyorsanız, dosya adları beyaz boşluk ve satırsonu karakterleri içerebileceğinden, normal olarak bir sonlandırıcı olarak '\ 0' kullanmak yeni satır kullanmaktan daha iyidir.
-czvf
arşiv oluşturun, arşivi gzip ile filtreleyin, işlenen dosyaları ayrıntılı bir şekilde listeleyin, arşiv adı
Düzenleme 2019-08-14: Eklemek isterim ki, yorumumda esasen aynı komutu sadece tar kullanarak kullanabildim:
tar -czvf /archiveDir/test.tar.gz --newer-mtime=0 --ignore-failed-read *.pdf
--ignore-failed-read
Bugün için yeni PDF olmaması durumunda gerekli .
find ... | xargs ...
Kullanmanın en iyi yolu , her bir: için -print0 / -0 parametresini kullanmaktırfind -print0 ... | xargs -0 ...
. Bu, dosya adlarının boş bir karakterle ayrılmasına neden olur, bu da dosya adlarınızda boşluklar veya satırsonları veya diğer garip şeyler olabileceği anlamına gelir ve yine de çalışır.