CentOS查看压缩包文件列表

把日常工作经常查看压缩包文件列表的场景,整理为shell脚本,并列表不同的实现方法。脚本支持多种常见压缩格式(如.jar/.zip/.rar/.tar等),通过判断文件后缀名调用对应的解压工具命令查看内容列表。

目录

1、查看压缩包文件列表演示

2、查看压缩包文件列表Shell脚本


运行环境:

1、查看压缩包文件列表演示

查看 .jar 压缩包文件列表

查看 .zip 压缩包文件列表

2、查看压缩包文件列表Shell脚本

bash 复制代码
#!/bin/bash
echo "###################################################"
echo "# Subject: 查看压缩包文件列表"
echo "#    Date: 2021.03.15"
echo "#  Author: 狂龙骄子"
echo "# BlogUrl: https://blog.csdn.net/Sn_Keys"
echo "#  Remark: 使用到的解压缩工具,必须提前安装。参考 http://tldp.org/HOWTO/Bzip2-5.html"
echo "#          调用方法:/opt/viewZipDetail.sh '/路径/文件名'"
echo "# History: "
echo "# 2021.03.15: New"
echo "###################################################"

# 设置环境变量:解决中文乱码
export LESSCHARSET=utf-8

# 获取传入的文件
FILE_NAME="$1"
# 判断是否为文件
if [ ! -f "${FILE_NAME}" ]; then
    echo "Error: File does not exist."
    exit 1
fi
# 判断文件后缀名并使用对应方式打开
case "${FILE_NAME}" in
    *.jar|*.war|*.ear)
        jar -tvf "${FILE_NAME}" ;;
    *.rar)
        #rar -v "${FILE_NAME}" ;;
        unrar -l "${FILE_NAME}" ;;
    *.tar)
        tar -tvf "${FILE_NAME}" ;;
    *.tgz)
        tar -tzvf "${FILE_NAME}" ;;
    *.tar.bz2)
        # This one work for the unmodified version of tar
        bzip2 -cd "${FILE_NAME}" | tar tvvf - ;;
    #*.tar.bz2)
    #    #This one works with the patched version of tar
    #    tyvvf "${FILE_NAME}" ;;
    #*.tar.bz2)
    #    tar -tjvf "${FILE_NAME}" ;;
    *.tar.gz)
        tar -tzvf "${FILE_NAME}" ;;
    *.tar.Z|*.tar.z)
        tar tzvvf "${FILE_NAME}" ;;
    *.bz2)
        bzip2 -cd "${FILE_NAME}" ;;
    *.Z|*.z)
        gzip -dc "${FILE_NAME}" ;;
    *.gz)
        gzip -dc "${FILE_NAME}" ;;
    *.zip)
        #zip -sf "${FILE_NAME}" ;;
        unzip -l "${FILE_NAME}" ;;
    *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man)
        FILE=`file -L $1`
        FILE=`echo $FILE | cut -d ' ' -f 2`
        if [ "$FILE" == "troff" ]; then
            groff -s -p -t -e -Tascii -mandoc "${FILE_NAME}"
        fi ;;
    *)
        cat "${FILE_NAME}" ;;
esac
相关推荐
xbzb4 天前
Shell 函数:语法、传参与递归调用一次讲透
shell·递归·函数·调用·传参·递归调用
东鹏特饮6 天前
15个实用Linux运维脚本
linux·运维·shell·脚本·redhat·常用生产脚本
Zoom6 天前
【开源】7 天,我用 Rust 复刻了 FinalShell!Rhost v1.0.0 发布
rust·electron·shell
百事牛科技11 天前
7Z分卷文件怎么打开?7-Zip解压方法详解
windows·7-zip
Lsetea15 天前
OpenSSL s_client退出码为0却证书验证失败:严格校验与Shell管道排查
https·shell·ssl证书·openssl·tls
fox_charon16 天前
Windows 下 CLI 参数的引号陷阱:为什么 --resume 'uuid' 会失败
windows·shell·cmd·cli·引号
吴声子夜歌25 天前
Shell编程实例——编写安全的shell脚本(二)
linux·运维·shell
吴声子夜歌1 个月前
Shell编程实例——内务及管理任务(一)
linux·运维·shell
吴声子夜歌1 个月前
Shell编程实例——高级脚本编程(一)
linux·运维·网络·shell
吴声子夜歌1 个月前
Shell编程实例——bash的配置与自定义(二)
linux·运维·shell