Saya perlu menghapus dari semua file folder lebih tua dari file tertentu.
Menjalankan bash di CentOS 7.
Saya punya solusi untuk ini, tetapi saya pikir harus ada cara yang lebih elegan untuk melakukannya:
reference_file=/my/reference/file
get_modify_time()
{
stat $1 | grep -Po "Modify: \K[0-9- :]*"
}
pit=$(get_modify_time $reference_file)
for f in /folder/0000* ; do [[ "$pit" > "$(get_modify_time $f)" ]] && rm $f ; done
bash
shell-script
centos
csny
sumber
sumber
-maxdepth 1
untuk menjaga agar pencarian tidak! -newer
berarti "tidak baru", jadi "lebih tua atau usia yang sama "; file itu sendiri akan dicocokkan jika ada di jalanfind
melihat, hanya sesuatu yang perlu diingat.! -name reference
(lihat butir ketiga).bandingkan waktu modifikasi file dengan
test
, menggunakan-nt
(lebih baru dari) dan-ot
(lebih tua dari) operator:sumber