Nếu ai find
đó không có -mmin
và nếu một người cũng bị mắc kẹt với find
chỉ chấp nhận các giá trị nguyên cho -mtime
thì tất cả không nhất thiết bị mất nếu người ta cho rằng "cũ hơn" tương tự như "không mới hơn".
Nếu chúng tôi có thể tạo một tệp có thời gian giới hạn, chúng tôi có thể yêu cầu find
xác định vị trí các tệp "không mới hơn" tệp tham chiếu của chúng tôi.
Để tạo một tập tin mà có tem thời gian chính xác là một chút tham gia vì một hệ thống mà không có đầy đủ find
có lẽ cũng có một ít hơn khả năng date
lệnh mà có thể làm những việc như: date +%Y%m%d%H%M%S -d "6 hours ago"
.
May mắn thay, các công cụ cũ khác mà có thể quản lý này, mặc dù theo một cách khó sử dụng hơn.
Hãy xem xét rằng sáu giờ là 21600 giây. Chúng tôi muốn tìm thời gian sáu giờ trước theo định dạng hữu ích:
$ date && perl -e '@d=localtime time()-21600; \
printf "%4d%02d%02d%02d%02d.%02d\n", $d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]'
> Thu Apr 16 04:50:57 CDT 2020
202004152250.57
Câu lệnh perl đã tạo ra một ngày hữu ích, nhưng nó phải được đưa vào sử dụng tốt hơn:
$ date && touch -t `perl -e '@d=localtime time()-21600; \
printf "%4d%02d%02d%02d%02d.%02d\n", \
$d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]'` ref_file && ls -l ref_file
Thu Apr 16 04:53:54 CDT 2020
-rw-rw-rw- 1 root sys 0 Apr 15 22:53 ref_file
Bây giờ giải pháp cho UNIX cũ này là một cái gì đó dọc theo dòng:
$ find . -type f ! -newer ref_file -a ! -name ref_file -exec rm -f "{}" \;
Nó cũng có thể là một ý tưởng tốt để làm sạch tệp tham chiếu của chúng tôi ...
$ rm -f ref_file