我正在使用Perl腳本修改.tar文件中的一些文件,並且生成的.tar文件中的目錄結構消失。 消除越來越多的代碼,只要所有的需要重現這個我來是當我使用Perl的Archive :: Tar時,爲什麼tarball目錄結構會消失?
my $data_tar = Archive::Tar->new('data.tar');
$data_tar->write('modified_data.tar');
兩者的.tar,文件擁有所有的文件,哪些目錄中的文件和子目錄分別位於然而指示迷路了。
我瀏覽過Archive::Tar的文檔和src,但我真的不明白髮生了什麼。
我在win32,tar 1.12和Archive :: Tar 1.54上使用perl 5.10.0。 我在一個編輯器中檢查了.tar文件,data.tar包含dir /和dir/file.txt,但是在modified_data.tar中,它們顯示爲dir和file.txt,所以我原來的tar似乎沒問題。
以前見過或有過任何想法的你們中的任何人?
來自POD(關於GNU tar版本):「請注意,早於版本1.14的GNU tar不支持POSIX標頭前綴 如果使用這樣的版本,請考慮設置$ Archive :: Tar :: DO_NOT_USE_PREFIX變量爲true。「 – 2009-10-09 15:48:02
@〜嘎嘎:我真的不知道posix頭是什麼,所以我想我跳過了那部分。這正是我需要的! – Ledhund 2009-10-09 16:02:45
@quack:我很驚訝你沒有給出答案,因爲它似乎是遇到的問題。 – Powerlord 2009-10-09 19:18:25