2017-12-20 5 views
0

Jetzt teste ich Tar-Befehle.TAR-Datei viel größer als Originaldateien mit Verwendung -T Option und Dateiliste. Warum?

Ich führe den 2 Befehl wie unten.

tar zcvf test1.tar.gz -C ./tar_dir . 
tar zcvf test2.tar.gz -C ./tar_dir -T /file_list.txt 

tar_dir Größe ist etwa 200 MB und hat etwa 10000 Dateien. file_list.txt hat alle Dateilisten von tar_dir dir mit dem relativen Pfad. also haben test1.tar.gz und test2.tar.gz dieselben Dateien. aber Größe ist zu unterschiedlich. test1.tar.gz ist etwa 130 MB und test2.tar.gz ist etwa 1,5 GB.

Ich kann das nicht verstehen. Ich bin sicher, dass test1.tar.gz und test2.tar.gz dieselben Dateien haben. Warum diese Größe von zwei Dateien unterschiedlich?

Antwort

0

Ich glaube, dass die tar-Dateien tatsächlich nicht die gleichen Dateien enthalten ... Vielleicht mit den Pfaden in der file_list.txt ein Fehler ist ...

Sie so etwas wie die folgenden Befehl tun können, um herauszufinden, was ist in test2.tar.gz und nicht in test1.tar.gz

sdiff es < (tar -tf test1.tar.gz | sed 's /^./// g' | sort) < (tar -tf test2.tar.gz | sort)

Das "sed" für test1.tar.gz soll das "./" vor den Dateien entfernen, um die beiden TAR-Datei-Listings und die Sortieren ist es, sie zu bestellen.

Hoffe, das hilft.

+0

Danke !. Ich habe das Problem gefunden. Du hast recht. Wenn/tar_dir/tar_dir/inner_dir/test hat, schreibe ich die Dateiliste wie folgt: "/ tar_dir/inner_dir" und "/ tar_dir/inner_dir/test". Und so/tar_dir/inner_dir/Testdatei dupliziert. Diese Dateiduplizierung macht eine größere tar.gz-Datei als das Original. Vielen Dank! – Supsupi

+0

Froh zu helfen :) – AnythingIsFine

Verwandte Themen