Quando apro un file di database SQLite c'è un sacco di testo leggibile all'inizio del file - quanto è grande la possibilità che un file SQLite venga filtrato erroneamente a causa del test del file -B
?Quanto è affidabile il test del file -B?
#!/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;
Non penso che i dettagli di '-T' e' -B' siano documentati, il che significa che potrebbero cambiare nelle versioni future di Perl, suppongo. Quindi, di nuovo, ciò li renderebbe inutili ... Una buona risposta a questa domanda descriverebbe i dettagli dell'euristica. Mi sono sempre chiesto me stesso – Nemo
Sono documentati in perlfunc, dove sono documentati tutti gli operatori di file. La descrizione è vaga, però. –