Khi tôi mở tệp cơ sở dữ liệu SQLite, có rất nhiều văn bản có thể đọc được ở đầu tệp - cơ hội mà tệp SQLite được lọc sai đi do kiểm tra tệp -B
?Kiểm tra tệp -B đáng tin cậy như thế nào?
#!/usr/bin/env perl
use warnings;
use strict;
use 5.10.1;
use File::Find;
my $dir = shift;
my $databases;
find({
wanted => sub {
my $file = $File::Find::name;
return if not -B $file;
return if not -s $file;
return if not -r $file;
say $file;
open my $fh, '<', $file or die "$file: $!";
my $firstline = readline($fh) // '';
close $fh or die $!;
push @$databases, $file if $firstline =~ /\ASQLite\sformat/;
},
no_chdir => 1,
},
$dir);
say scalar @$databases;
Tôi không nghĩ rằng các chi tiết của '-T' và' -B' được ghi lại, có nghĩa là chúng có thể thay đổi trong bản phát hành tương lai của Perl, tôi cho là vậy. Sau đó, một lần nữa, điều đó sẽ làm cho họ vô dụng ... Một câu trả lời hay cho câu hỏi này sẽ mô tả chi tiết của các chẩn đoán. Tôi luôn tự hỏi bản thân mình – Nemo
Chúng được ghi lại trong perlfunc, nơi tất cả các toán tử tệp được ghi lại. Mô tả là mơ hồ, mặc dù. –