peekzip

读不到类?Spring Boot 嵌套 JAR 与类加载器盲区 字节码增强的第一步不是改,是拿到。 阅读详情

#!/bin/bash

##################################################################
# file name: peekzip                                             #
# see matched patterns in zip/jar/war or any zip compatible file #
##################################################################


ME=`basename $0`

showHelp()
{
  echo "usage $ME -h"
  echo "usage $ME [-i] [-c] [-n] [-d depth] text_pattern [suffix1] [...]"
  echo "usage $ME [-i] [-c] [-n] [-d depth] -f zip_file text_pattern"
  echo "-h: show help"
  echo "-i: ingore case"
  echo "-c: show command"
  echo "-n: show line number"
  echo "-d: search depth"
  echo "-f: zip compatible file name"
  echo "The file suffix is case insensitive"
}


DEFAULT_SUFFIX="zip jar war ear"
WORK_DIR=/tmp
TMP_FILE=$WORK_DIR/$ME.$$

INVALID=1
IGNORE_CASE=1
SHOW_COMMAND=1
NUMBER=1
FILE=1
DEPTH=1

# check arguments
while getopts :icnhf:d: OPTION
do
  case $OPTION in
    i) IGNORE_CASE=0
       ;;
    c) SHOW_COMMAND=0
       ;;
    n) NUMBER=0
       ;;
    d) DEPTH=0
       MAX_DEPTH=$OPTARG
       ;;
    f) FILE=0
       FILE_NAME=$OPTARG
       ;;
    h) showHelp
       exit 0
       ;; 
    *) INVALID=0
       ;;
  esac
done

[ $INVALID -eq 0 ] && showHelp && exit 1

# assigned file name
[ $FILE -eq 0 ] && [ -z "$FILE_NAME" ] && showHelp && exit 1
shift `expr $OPTIND - 1`

PATTERN=$1
shift
SUFFIX=$*

[ -z "$PATTERN" ] && showHelp && exit 1

#echo "PATTERN=$PATTERN"
#echo "SUFFIX=$SUFFIX"
#echo "FILE_NAME=$FILE_NAME"
#echo "MAX_DEPTH=$MAX_DEPTH"

# set arguments
[ $IGNORE_CASE -eq 0 ] && IGNORE_CASE_ARG=" -i "
[ $NUMBER -eq 0 ] && NUMBER_ARG=" -n "
[ $DEPTH -eq 0 ] && MAX_DEPTH_ARG=" -maxdepth $MAX_DEPTH "

if [ $FILE -eq 0 ]
then
  FILE_NAME_ARG=" -name /"$FILE_NAME/" "
else
  # reset suffix if no suffix was specified
  [ -z "$SUFFIX" ] && SUFFIX=$DEFAULT_SUFFIX
 
  for VAR in $SUFFIX
  do
    S=$S"/|"$VAR
  done
 
  SUFFIX_PATTERN=`echo $S | sed 's///|//'`
  FILE_NAME_ARG=" -iregex /".+/./($SUFFIX_PATTERN/)/" "
fi

FINDCMD="find . $MAX_DEPTH_ARG -type f $FILE_NAME_ARG 2>/dev/null $SUFFIX_ARG"
[ $SHOW_COMMAND -eq 0 ] && echo $FINDCMD

ZIP_FILES=`eval $FINDCMD`
for VAR in $ZIP_FILES
do
  CMD="unzip -l $VAR 2>/dev/null | grep $IGNORE_CASE_ARG -E $PATTERN > $TMP_FILE"
  [ $SHOW_COMMAND -eq 0 ] && echo $CMD
  eval $CMD
  [ ! -f $TMP_FILE ] && echo "Failed to create temp file $TMP_FILE!" && exit 1
 
  WORD_COUNT=`wc -w $TMP_FILE | awk '{print$1}'`
  if [ $WORD_COUNT -gt 0 ]
  then
    # got matched lines
    echo -e "/033[;33;1m"       # highlight the title line as bold yellow
    echo "-------------------------------$VAR-------------------------------"
    echo -e "/033[;0m/c"       # rest font color
    cat $NUMBER_ARG $TMP_FILE
    /bin/rm -rf $TMP_FILE
  fi
done

exit 0

MobaXterm终端工具个人学习版安装包及常用配置备份 资源包含 MobaXterm 个人版的安装包以及日常运维常用的基础配置备份文件。适用于网络工程师及运维人员用于日常的服务器管理、SSH 连接及串口调试。 压缩包内附带了个人整理的软件使用技巧与配置说明(仅供个人学习参考)。请各位同行下载后注意,技术工具请尽量支持官方正版,本资源仅供个人测试与交流使用,切勿用于商业环境。 立即下载

相关推荐

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取

使用perl计算日期

#!/usr/bin/perlsub addDate{  ($delt) = @_;    my $date = time() + 60 * 60 * 24 * $delt;  (undef, undef, undef, $day, $month, $year) = localtime $date;    $year += 1900;  $month++; 

ppby2002的专栏 1492

科技中介服务机构如何借助平台提升技术撮合服务的专业性与响应速度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

findline

#!/bin/bash ###################################################### # file name: findline                                # # find lines

ppby2002的专栏 899

产业园区如何利用AI技术提升科技成果转化服务的响应速度与转化成功率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

手把手教你用闲置安卓手机+蓝鲸支付,零成本搞定个人项目自动收款(附私有化部署教程)

本文详细介绍了如何利用闲置安卓手机和蓝鲸支付系统,零成本搭建个人项目自动收款解决方案。通过私有化部署教程,读者可以学习到从手机选择、系统配置到支付渠道对接的全流程,实现安全、高效的收款系统,特别适合个人开发者和小型项目使用。

weixin_29597551的博客 334

ax

#!/bin/bash ########################################### # file name: ax                           # # set file to be executable for all users # ########################################### ME=`basename $0` showHelp() {   echo "usage $ME file_name1 [

ppby2002的专栏 691

CAN:CANape使用Function处理数据

CANape中的function and script习惯称之为脚本(实际为函数和脚本)。这里介绍function,可以实现简单信号a和信号b乘法,比如计算功率(转速与扭矩乘)。该功能前期有专业人员做支援,当时问其编制方法,其回答是看帮助文件。现在没有支援自己动手。 功能描述:电压信号阶梯增加,每次保持1.5s,测量后0.5s位移平均值(假设信号步长10ms,需要取样50个点,但该脚本中点的数目为10个)。图示如下: 刚开始看了软件Function definition→Library function,

Morven 1万+

killprocess

#!/usr/bin/perl######################################################################## file name: killprocess                                              ## kill process by pid              

ppby2002的专栏 680

请叫我鱼拆,2024扫地机器人的第一次拆机

从背面可以看出,这个机器人是两轮差速模型,两个驱动轮,一个万向轮,驱动轮位于机器人中心位置,这样原地旋转的圆心就是机器人的中心。可以看到设备已经连接,但是没有办法进shell,厂家应该有做了安全保护之类的,有知道从这个口可以登录系统办法的小伙伴可以后台留言。但这台机器人一直报警说,机器人轮子离地,小鱼 估计是防跌落模块有问题,误触发了,所以打算先拆机看看。接着小鱼试了下,机器可以开机,然后给他重新配置wifi,连上 米家。Allwinner,全志的片子,不知道哪个型号的,看产品id,应该支持adb。

生活不止眼前的苟且 3930

当LightGBM推理遇上GPU:3种替代方案性能对比(含ONNX实战代码)

本文针对LightGBM官方不支持GPU推理的性能瓶颈,深度评测了RAPIDS cuML、ONNX Runtime GPU和Triton Inference Server三种GPU加速推理替代方案。通过详尽的性能对比和实战代码,为高并发、低延迟的在线预测场景提供了清晰的选型指南,帮助工程师打破推理性能枷锁,实现显著的吞吐量提升。

salt9的博客 813

lessfind

#!/usr/bin/perl######################################################################## file name: lessfind                                                 ## use less to open specific files b

ppby2002的专栏 660

Axure RP 9在Windows 11环境下的高效安装与配置指南

本文提供Axure RP 9在Windows 11系统下的详细安装步骤与配置指南。针对Win11安全特性,从获取官方安装资源、调整系统权限,到定制化安装路径、精准汉化及性能优化,系统性地解决了安装闪退、汉化失败、运行卡顿等常见问题,确保用户获得稳定流畅的原型设计体验。

mango的博客 480

catfind

#!/usr/bin/perl######################################################################## file name: catfind                                                  ## use cat to open specific files by

ppby2002的专栏 625

SLAM轨迹评估神器evo实战:从GPS到TUM格式的完整转换指南(附Python代码)

本文详细介绍了如何使用evo工具将GPS数据转换为TUM格式,以便进行SLAM轨迹评估。通过Python代码实现GPS到笛卡尔坐标的精确转换,并提供了完整的处理流程和实战案例,帮助开发者轻松完成从原始GPS数据到精确轨迹评估的全过程。特别适用于ORB-SLAM等视觉SLAM算法的性能验证。

weixin_29074295的博客 294

【C++实战(62)】从0到1:C++打造TCP网络通信实战指南

本文是 C++ 网络编程实战专栏第 62 篇,聚焦 TCP 客户端与服务端开发。先阐述 TCP 协议特点、核心 API 及阻塞与非阻塞 IO 区别,打牢基础;再详解 TCP 服务端初始化、客户端连接处理与数据收发,以及客户端初始化、异常处理和协议设计;最后通过简易聊天系统实战,介绍线程池应用、协议解析及稳定性测试,助力开发者掌握 TCP 网络编程实操技能。

邓邓子的博客 999

vifind

#!/usr/bin/perl ################################################## # file name: vifind.pl                           # # vi specific files by pattern in current folder # ################################################## my $me = `basename $0`; chomp

ppby2002的专栏 623

黑猫带你学UFS协议第8篇:UFS电气特性详解(Power、CLK、Reset等)

UFS强制支持secure mode。UFS设备可能会存储个人或者公司的信息,UFS提供把数据永久从设备上移除的功能,并且保证对存储介质进行逆向恢复数据也恢复不回来原有数据。安全模式是以逻辑单元为单位进行应用的,不同的逻辑单元可以有不同的安全模式。由于UFS设备的存储介质不同,所以把数据安全从存储介质上移除方式会有不同,spec提供了三种通用的移除方法,UFS设备至少支持其中一种。● 对存储的位置进行一次擦除操作。● 对存储的位置使用单一字符(比如0xAA)覆盖写,然后进行擦除。.........

黑猫奥利奥的博客 4076

lesslast

#!/bin/bash######################################################################## file name: lesslast                                                 ## use less to open last file by ls -lt

ppby2002的专栏 619

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

vilast

#!/usr/bin/ksh ###################################### # vi last file by 'ls -ltrF' command # ###################################### vi `ls -ltrF | sed -n '$p' | awk {'print$NF'}`

ppby2002的专栏 606

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

catlast

#!/bin/bash ################################################################## # file name: cat last                                            # # display last file by 'ls -ltrF' command                        # #######################################

ppby2002的专栏 604

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

findfile

#!/usr/bin/ksh ########################################################### # file name: findline                                     # # fin

ppby2002的专栏 585

x

#!/bin/bash ############################################### # file name: x                                # # set file to be executable for current users # ############################################### ME=`basename $0` showHelp() {   echo "usage

ppby2002的专栏 488

winsw将jar、nginx等注册为Windows服务

执行完后就可以输入 gateway-service.exe start 启动服务了。打开命令框输入gateway-service.exe install。

weixin_45893072的博客 222

打包之后两个版本的commons-codec.jar问题

mvn dependency:tree -Dverbose -Dincludes=commons-codec 只看到一个版本 .但是 maven打包出来后 仍然是两个版本的jar包只看,这就是你现在的现象:maven 依赖仲裁只保留一份,但是某个第三方 SDK / 二方包本身是 fat jar,它内部已经打包了一份 commons-codec,打包插件会原样把这个 SDK 整个塞进去,于是最终 BOOT-INF/lib 就出现两份 commons-codec。

fengbin2005的专栏 151
上一篇: 改变linux终端颜色
下一篇: 设置 VirtualBox 虚拟机访问局域网
ppby2002
博客等级 码龄23年 65粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值