拆分两个文件
Split two files
我在 android 中合并了两个文件,使用这个 Linux 命令
cat file1.png file2.zip > file3.png
如何再次拆分两个文件?我只想单独检索 zip 文件。
有没有具体的命令?我试过这些代码:
unzip file3.png
用 zip 替换了 png:
unzip file3.zip
但其中 none 有效。
我可以打开组合的唯一应用程序是 windows
上的 winrar
我还在 android 上尝试了几个解压缩和解压应用程序,但 none 除了 rarlab 的 RAR 应用程序
我在 unrar/unzip 文件中提到的那些应用程序是否有任何来源?
您需要知道的是,PNG 文件以十六进制值 0x89
开头,后跟文本 PNG
。 Zip 文件以 PK 0x04 0x03
开头。您可以编写一个实用程序来读取文件并将读入的字节输出到新文件,当检测到某个文件签名时使用新的输出文件。
对于一次性解决方案,您可以使用 vim
,但您必须小心阻止 vim
在行尾添加换行符。
为了安全起见复制你的输入文件
cp file3.png f1
cp file3.png f2
vim -b f1
并在 vim 中输入
:set noeol
搜索 zip 文件的开头
/PK
正在检查找到的序列是 PK^C^D
。如果没有,寻找下一场比赛。
用
从PK
删除行尾
d$
向下移动一行,删除文件的剩余部分并保存
j
:.,$ d
ZZ
同理,f2删除文件开头,得到zip文件
注意:不要将 f2 命名为 f2.zip,因为 vim 足够聪明,可以将其作为 zip 文件打开,这不是您想要的。
严格来说:没办法。
您可能会在上面的答案中寻找 PK 0x04 0x03 作为分隔符,但您无法保证此字符序列也不会出现在 file1.png 的图像数据中.
总而言之,这是一个有趣的问题。如果您想定期像这样拆分文件,请重新考虑您的策略。如果您需要它来纠正一次性错误或其他问题,您可以分开查找分隔符,并且在超过 99% 的情况下都可以。
我不确定你试图通过 "hiding" 将 zip 文件转换为 PNG 来完成什么,但是如果你试图制作 Winrar 可以打开的单个文件,那么这是一种奇怪的方法.
当您 cat
将文件添加到 zip 文件的开头或结尾时,您不会创建 .zip
(或任何其他类型的存档)文件。这只是将两个二进制文件附加在一起。
winrar 可以打开您的 "combined" 二进制文件的原因是它最有可能识别文件头并且可以破译您有 2 个文件。
我建议您查看 zip 命令的用法,了解如何将 文件添加到存档中。我快速搜索显示,例如
zip -rv zipfile.zip newfile.txt
将 newfile.txt 添加到 zipfile.zip。
我在 android 中合并了两个文件,使用这个 Linux 命令
cat file1.png file2.zip > file3.png
如何再次拆分两个文件?我只想单独检索 zip 文件。
有没有具体的命令?我试过这些代码:
unzip file3.png
用 zip 替换了 png:
unzip file3.zip
但其中 none 有效。 我可以打开组合的唯一应用程序是 windows
上的 winrar我还在 android 上尝试了几个解压缩和解压应用程序,但 none 除了 rarlab 的 RAR 应用程序
我在 unrar/unzip 文件中提到的那些应用程序是否有任何来源?
您需要知道的是,PNG 文件以十六进制值 0x89
开头,后跟文本 PNG
。 Zip 文件以 PK 0x04 0x03
开头。您可以编写一个实用程序来读取文件并将读入的字节输出到新文件,当检测到某个文件签名时使用新的输出文件。
对于一次性解决方案,您可以使用 vim
,但您必须小心阻止 vim
在行尾添加换行符。
为了安全起见复制你的输入文件
cp file3.png f1
cp file3.png f2
vim -b f1
并在 vim 中输入
:set noeol
搜索 zip 文件的开头
/PK
正在检查找到的序列是 PK^C^D
。如果没有,寻找下一场比赛。
用
从PK
删除行尾
d$
向下移动一行,删除文件的剩余部分并保存
j
:.,$ d
ZZ
同理,f2删除文件开头,得到zip文件
注意:不要将 f2 命名为 f2.zip,因为 vim 足够聪明,可以将其作为 zip 文件打开,这不是您想要的。
严格来说:没办法。
您可能会在上面的答案中寻找 PK 0x04 0x03 作为分隔符,但您无法保证此字符序列也不会出现在 file1.png 的图像数据中.
总而言之,这是一个有趣的问题。如果您想定期像这样拆分文件,请重新考虑您的策略。如果您需要它来纠正一次性错误或其他问题,您可以分开查找分隔符,并且在超过 99% 的情况下都可以。
我不确定你试图通过 "hiding" 将 zip 文件转换为 PNG 来完成什么,但是如果你试图制作 Winrar 可以打开的单个文件,那么这是一种奇怪的方法.
当您 cat
将文件添加到 zip 文件的开头或结尾时,您不会创建 .zip
(或任何其他类型的存档)文件。这只是将两个二进制文件附加在一起。
winrar 可以打开您的 "combined" 二进制文件的原因是它最有可能识别文件头并且可以破译您有 2 个文件。
我建议您查看 zip 命令的用法,了解如何将 文件添加到存档中。我快速搜索显示,例如
zip -rv zipfile.zip newfile.txt
将 newfile.txt 添加到 zipfile.zip。