我的mac上有以下操作:
$ echo "dgrgrrgrgrg" > test1.txt
几秒钟后,复制test1.txt:
$ cp test1.txt test2.txt
$ ls -l
total 16
-rw-r--r-- 1 hqfy staff 12 Mar 31 10:18 test1.txt
-rw-r--r-- 1 hqfy staff 12 Mar 31 10:19 test2.txt
现在chech md5sum:
$ md5 *.txt
MD5 (test1.txt) = 8bab5a3e202c901499d83cb25d5a8c80
MD5 (test2.txt) = 8bab5a3e202c901499d83cb25d5a8c80
显而易见,test1.txt和test2.txt具有相同的md5sum,现在我将这两个文件压缩:
$ zip -X test1.zip test1.txt
adding: test1.txt (deflated 8%)
$ zip -X test2.zip test2.txt
adding: test2.txt (deflated 8%)
$ ls -l
total 32
-rw-r--r-- 1 hqfy staff 12 Mar 31 10:18 test1.txt
-rw-r--r-- 1 hqfy staff 127 Mar 31 10:22 test1.zip
-rw-r--r-- 1 hqfy staff 12 Mar 31 10:19 test2.txt
-rw-r--r-- 1 hqfy staff 127 Mar 31 10:23 test2.zip
test1.zip和test2.zip的大小是一样的,但是当我检查md5sum时:
$ md5 *.zip
MD5 (test1.zip) = af8783f96ce98aef717ecf6229ffb07e
MD5 (test2.zip) = 59e752a03a2930adbe7f30b9cbf14561
我用谷歌搜索了它,使用带有选项-X的zip,但它在我的情况下不起作用,我怎么能用相同的md5sum创建两个zip文件?
答案 0 :(得分:0)
从此处的zip手册页引用..
使用-X,zip会删除所有旧字段,并且只包含Unicode和 Zip64额外字段(目前这两个额外字段不能 禁用)。
因此,在压缩时(即使使用<Style x:Key="AnswerRadioItem" TargetType="{x:Type ListBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<RadioButton x:Name="rbAnswer"
Content="{Binding Text}"
IsChecked="{Binding IsSelected, RelativeSource {x:Static RelativeSource.TemplatedParent}}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<ControlTemplate x:Key="AnswerRadioControl" TargetType="ContentControl">
<StackPanel>
<ListBox
x:Name="lstQuestionRadioItem"
ItemContainerStyle="{StaticResource AnswerRadioItem}"
ItemsSource="{Binding Answers}"
SelectedItem="{Binding SelectedAnswer}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</StackPanel>
</ControlTemplate>
),预计会有不同的md5sum。
答案 1 :(得分:0)
我知道这个问题很老了,但我可能会为您解答:
.zip
文件中包含两个文件的时间戳(明显不同)。这就是md5sum
不同的原因。如果您能以某种方式删除这些时间戳,则md5sum
将会是相同的。
还要注意,macOS将文件夹(__MACOSX
)添加到包含额外元数据等的zip文件中。这可能也是问题所在。