vCard scheint ein Textdateiformat zu sein. Dies ist eine gute Sache, da Textdateien keine Nullen enthalten sollten. Dies ist hilfreich, wenn das Betriebssystem fälschlicherweise der Meinung ist, dass die Datei eine spärliche Datei ist, die sehr lange Folgen von Nullen enthält.
Sie können verwenden, um ls -lks bigfile
zu sehen, ob der belegte Raum vom scheinbaren Raum abweicht.
Sie können dd
Datenblöcke (z. B. nur die ersten 500 Byte) in eine neue Datei extrahieren. Sie können dann verwenden, um hexdump
zu sehen, ob sich in diesem Block ein wiederherstellbarer Text befindet.
Wenn Sie feststellen, dass die Datei mit langen Folgen von Nullen gefüllt ist, können Sie versuchen, die Datei mit einem Skript zu lesen und nur die Nicht-Null-Daten in eine neue Datei zu schreiben. Auf diese Weise können Sie mit einiger Anstrengung eine gültige vCard-Datei der üblichen Größe erstellen.
Verwenden Sie alternativ strings bigfile
, um Text aus der großen Datei zu extrahieren
Viele dieser Vorgänge werden für eine ig-Datei sehr lange dauern. Vielleicht möchten Sie etwas kleineres üben ...
Hier ist eine vCard-Datei
$ cat gump.vcard BEGIN:VCARD VERSION:2.1 N:Gump;Forrest FN:Forrest Gump ... EMAIL;PREF;INTERNET:forrestgump@example.com REV:20080424T195243Z END:VCARD $ file gump.vcard gump.vcard: vCard visiting card
Lassen Sie uns eine korrupte spärliche Version machen
$ dd of=sparse-file bs=1k seek=5120 count=0 0+0 records in 0+0 records out 0 bytes (0 B) copied, 0 s, Infinity B/s $ cat gump.vcard sparse-file > sparse-gump.vcard $ cp --sparse=always sparse-gump.vcard really-sparse-gump.vcard $ ls -lks *sparse* 0 -rw-r--r-- 1 rgb rgb 5120 Jul 11 18:09 sparse-file 5136 -rw-r--r-- 1 rgb rgb 5121 Jul 11 18:10 sparse-gump.vcard 4 -rw-r--r-- 1 rgb rgb 5121 Jul 11 18:18 really-sparse-gump.vcard
Beachten Sie, dass die Größe der letzten Datei auf der Festplatte 4 Blöcke beträgt, aber 5121 Datenblöcke enthält.
Mal sehen was da drin ist
$ hexdump really-sparse-gump.vcard | head -n 3 0000000 4542 4947 3a4e 4356 5241 0a44 4556 5352 0000010 4f49 3a4e 2e32 0a31 3a4e 7547 706d 463b 0000020 726f 6572 7473 460a 3a4e 6f46 7272 7365 $ hexdump really-sparse-gump.vcard | tail 0000230 4120 656d 6972 6163 450a 414d 4c49 503b 0000240 4552 3b46 4e49 4554 4e52 5445 663a 726f 0000250 6572 7473 7567 706d 6540 6178 706d 656c 0000260 632e 6d6f 520a 5645 323a 3030 3038 3234 0000270 5434 3931 3235 3334 0a5a 4e45 3a44 4356 0000280 5241 0a44 0000 0000 0000 0000 0000 0000 0000290 0000 0000 0000 0000 0000 0000 0000 0000 * 0500280 0000 0000 0500284
Beachten Sie die *
Linie zwischen den Offsets 290 und 0500280 - dort leben alle imaginären Nullen.
$ strings really-sparse-gump.vcard > new-gump.vcard $ ls -lks new-gump.vcard 4 -rw-r--r-- 1 rgb rgb 1 Jul 11 18:30 new-gump.vcard $ cat new-gump.vcard BEGIN:VCARD VERSION:2.1 N:Gump;Forrest FN:Forrest Gump ... EMAIL;PREF;INTERNET:forrestgump@example.com REV:20080424T195243Z END:VCARD
Wir haben unsere normale vCard aus der riesigen Datei wiederhergestellt. Ihr Kilometerstand kann variieren.