Tôi đang cố gắng kiểm tra một tệp nếu nó đang mở bằng cách sử dụng lsof. Có cách nào nhanh hơn thế này không?Cách nhanh nhất khi sử dụng lsof để tìm một tệp đang mở là gì?
$result = exec('lsof | grep filename | wc -l');
if($result > 0) {
//file is open
}
Tôi nghĩ rằng đó phải là cách để kiểm tra một tệp nếu bạn biết tên tệp. Tất cả những gì tôi thực sự cần là đúng hay sai.
Nếu bạn thực sự quan tâm đến quá trình đang sử dụng tệp, tốt hơn nên sử dụng tùy chọn '-m 1' cho grep để bạn thực sự có được dòng khớp thay vì tên tệp (stdin) khớp được tìm thấy. (Nếu không, sử dụng thay thế tốt đẹp của '-l'.) – Cascabel