tar archives και corruption
Giorgos Keramidas
keramida at ceid.upatras.gr
Thu Nov 29 17:41:25 EET 2007
On 2007-11-29 17:10, George Notaras <gnot at g-loaded.eu> wrote:
> Εάν ένα uncompressed tar αρχείο "χαλάσει" σε κάποιο σημείο, είναι δυνατό
> το extraction αρχείων που δεν επηρεάζονται από την corrupted περιοχή?
Μπορείς πάντα να χρησιμοποιήσεις το cpio(1), το οποίο υποστηρίζει
per-file checksums.
Για παράδειγμα, έφτιαξα ένα ~/crew directory με το source από το
``mercurial-crew'' branch, και το συμπίεσα με το cpio(1) σε BSD και
Solaris:
cd ~/crew
find . | cpio -o -H crc > /var/tmp/mercurial.cpio
Ύστερα με το hexl-mode του Emacs (ή ένα οποιοδήποτε άλλο hex editor)
άλλαξα ένα byte στο αρχείο, και το έκανα extract:
$ cpio -i -H crc < /var/tmp/mercurial-broken.cpio
cpio: "contrib/churn.py" - checksum error
4768 blocks
1 error(s)
$ echo $?
1
$
Η διαφορά είναι όντως το ένα byte που άλλαξα...
$ gdiff -ruN crew crew-test
diff -ruN crew/contrib/churn.py crew-test/contrib/churn.py
--- crew/contrib/churn.py 2007-11-29 17:40:27.207508000 +0200
+++ crew-test/contrib/churn.py 2007-11-29 17:40:36.591104000 +0200
@@ -174,7 +174,7 @@
revs.sort()
stats = gather_stats(ui, repo, amap, revs, opts.get('progress'))
- # make a list of tuples (name, lines) and sort it in descending order
+ # make a list of tuples (name, lines) and sort it in descending or er
ordered = stats.items()
ordered.sort(lambda x, y: cmp(y[1], x[1]))
$
More information about the Linux-greek-users
mailing list