Câu trả lời:
Nếu bạn vẫn quan tâm đến giải pháp theo kịch bản, tôi đã nhanh chóng kết hợp một thứ gì đó sẽ hiển thị các tệp từ tất cả các thư mục lại với nhau:
#!C:/Perl/bin/perl.exe
use File::Find;
my %files = ();
sub process
{
$files{$_} = (stat($_))[9] unless -d $_;
}
find (\&process, $ARGV[0]);
foreach my $key(sort {$files{$b} <=> $files{$a}} keys %files)
{
print "$key\n";
}
Các tệp được hiển thị mới nhất đến cũ nhất, chỉ hiển thị tên tệp. Bằng cách này, bạn có thể dễ dàng chuyển đầu ra của tập lệnh này sang một công cụ khác để xử lý mà không phải lo lắng về việc tước đầu ra dư thừa.
Sử dụng: perl find.pl <starting_directory>
my $dir = ($#ARGV >= 0 ? $ARGV[0] : '.');
để nó sẽ quét thư mục hiện tại nếu tham số thư mục không được cung cấp và bao gồm thời gian được in:print strftime('%Y-%m-%d %H:%M:%S', localtime((stat($key))[9])) . " $key\n";
$files{$key}
nếu bạn muốn sử dụng nó strftime
khi in để tránh cuộc gọi thứ hai stat()
. Nếu bạn dự định chuyển nó sang chương trình khác, tôi cũng đã sửa đổi nó để hiển thị đường dẫn đầy đủ của tên tệp. Bạn có thể lấy nó ở đây: pastebin.ca/1797748
Nếu bạn đã cài đặt Cygwin hoặc tương tự thì find . -type f | xargs ls -tr
sẽ thực hiện thủ thuật. Bạn gần như chắc chắn có thể làm tương tự với powershell của Microsoft.
Trong trường hợp bạn đang sử dụng Mọi thứ , chỉ cần nhập đường dẫn và sắp xếp theo Ngày Sửa đổi và bạn sẽ nhận được tất cả các tệp trong thư mục này theo thứ tự đó, bất kể thư mục con.
Tất cả mọi thứ là phần mềm miễn phí, một phiên bản di động có sẵn.
Nếu bạn không bận tâm về mã hóa (mặc dù điều này đặt câu hỏi vào lãnh thổ Stack Overflow) thì có Directory
và File
các lớp trong C #.
Các GetFiles
phương pháp có một tình trạng quá tải mà sẽ trả lại tất cả tên tập tin trong tất cả các thư mục con. Sau đó, bạn có thể lặp qua danh sách này, gọi GetLastWriteTime
để lấy ngày / giờ sửa đổi. Lưu trữ tên và thời gian trong một từ điển, sắp xếp thời gian và in tên tập tin.
Ngoài ra còn có DirectoryInfo
và FileInfo
các lớp.
Tôi nên nói thêm rằng tất cả các chức năng này đều có sẵn thông qua Powershell , vì vậy bạn không có quyền truy cập vào một IDE đầy đủ.
Nếu bạn đã cài đặt Git Bash hoặc Cygwin, bạn có thể sử dụng một trong những câu trả lời từ đây: /programming/4561895/how-to-recursively-find-the-latest-modified -file-in-a-thư mục
Một trong những hoạt động tốt cho tôi là: find . -type f -printf '%TF %TT %p\n' | sort -r
Bạn cũng có thể thêm | head -10
vào cuối của đó để xem chỉ 10 gần đây nhất, nói.