确定Zip文件开头的脚本长度

时间:2018-12-19 10:28:41

标签: spring bash spring-boot jar zip

我有一个spring boot应用程序,一开始是bash loader。当我解压缩它时,开始的脚本会丢失。我需要它来重新组装。因此,想法是使用head -c将其拆分。但是我不知道如何有效地确定字节位置。 less告诉我打开zip时脚本的字节数,但是我想使其自动化。是否可以用(un)zip确定它?还是有另一种简单的方法?

我想到了确定exit 0的结束位置。在我当前的应用中,这是8720。使用

echo 'ibase=16;obase=A;'$(xxd nevisadmin-app.jar | grep -m 1 "exit 0" | awk -F: '{print $1}') | bc

我得到8704(因为它在该行的末尾),但这非常脆弱,因为如果xxd输出不在同一行中,它将失败。

000021f0 ... bla bla ex
00002200 ... it 0 binarystartshere 

谢谢

1 个答案:

答案 0 :(得分:0)

似乎,搜索exit 0是确定spring boot脚本结束的可靠方法。

解压缩脚本将像这样”:

head -n $(grep -a -n "exit 0" springboot-app.jar  | awk -F: '{print $1}') springboot-app.jar > startscript.sh

因此,它不能确定长度,但这与原始问题无关。 如果有人查询了这个问题,答案将是将输出粘贴到wc -c而不是将输出重定向到文件。