Saya memiliki file yang namanya dimulai dengan YYYYMMDD seperti berikut:
20160221_143223_Report.csv
20160222_121223_Report.csv
...
20160229_141223_Report.csv
20160301_171223_Report.csv
Saya ingin tar file yang memiliki "Laporkan" dalam nama file dan yang namanya sesuai dengan kisaran 1-8 hari yang lalu. Misalnya: hari ini tanggal 1 Maret, jadi saya ingin tar file dari 22 Februari hingga 29 Februari (hari ini tidak termasuk).
files=($(ls |<HAS "Report" in filename> and <WITHIN `date -d "8 days ago" '+%Y%m%d'> )) #output will be filenames that has the word "Report" and from 22th to 29th FEB
tar cvfz oldfile.tar.gz "${files[@]}"
Apa pola yang harus saya cocokkan?
Jawaban:
find
mungkin merupakan taruhan terbaik jika Anda ingin menjalankannya sendiri:Ada juga alat yang cukup standar untuk membersihkan file lama yang disebut
logrotate
yang dapat cocok dengan pola dalam folder dan melakukan berbagai penyempurnaan, termasuk mengompresi file lama dan menghapus histori.sumber