Tôi biết hệ thống tệp của mình đang lưu trữ thời gian sửa đổi tệp theo mili giây nhưng tôi không biết cách truy cập thông tin đó qua PHP. Khi tôi làm một số ls --full-time
Tôi thấy điều này:Lấy danh sách tệp lớn, sắp xếp theo thời gian tệp theo * mili giây *
-rw-r--r-- 1 nobody nobody 900 2012-06-29 14:08:37.047666435 -0700 file1
-rw-r--r-- 1 nobody nobody 900 2012-06-29 14:08:37.163667038 -0700 file2
Tôi giả định rằng các số sau dấu chấm là mili giây.
Vì vậy, tôi nhận ra tôi chỉ có thể sử dụng ls
và có nó sắp xếp theo thời gian sửa đổi, như thế này:
$filelist = `ls -t`;
Tuy nhiên, thư mục đôi khi có một số lượng lớn các tập tin và tôi đã nhận thấy rằng ls
có thể khá chậm trong những trường hợp đó.
Vì vậy, thay vào đó, tôi đã sử dụng find
nhưng không có công tắc để sắp xếp kết quả theo thời gian sửa đổi. Dưới đây là một ví dụ về những gì tôi đang làm gì bây giờ:
$filelist = `find $dir -type f -printf "%[email protected] %p\n" | sort -n | awk '{print $2}'`;
Và, tất nhiên, điều này không loại xuống mili giây để tập tin đã được tạo ra trong cùng một thứ hai đôi khi được liệt kê theo thứ tự sai.
Tại sao 'sắp xếp -n' không sắp xếp thành mili giây? Dường như với tôi rằng hai dấu thời gian '1341013506.3000000000' và' 1341013506.6000000000' sẽ được sắp xếp theo số lượng không? Tôi không thể sao chép vì máy của tôi không lưu trữ thời gian tệp ms :) –
@mattedgod: kiểm tra thư mục '/ sys /' của bạn; trên hệ thống của tôi, nó hỗ trợ thời gian nano giây. – sarnold
@ sarnold Hmm lạ, thư mục sys chỉ bằng nano giây nhưng hầu hết các thư mục tài liệu thì không. Thú vị ... –