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
相关推荐
吴声子夜歌5 天前
Shell编程实例——编写安全的shell脚本(二)
linux·运维·shell
吴声子夜歌6 天前
Shell编程实例——内务及管理任务(一)
linux·运维·shell
吴声子夜歌6 天前
Shell编程实例——高级脚本编程(一)
linux·运维·网络·shell
吴声子夜歌6 天前
Shell编程实例——bash的配置与自定义(二)
linux·运维·shell
吴声子夜歌7 天前
Shell编程实例——与解析相关的任务(二)
linux·运维·shell
吴声子夜歌7 天前
Shell编程实例——脚本编程的附加特性
linux·运维·shell
云计算练习生7 天前
什么是内核?操作系统内核到底管哪些事
linux·windows·操作系统·内核·shell
吴声子夜歌10 天前
Shell编程实例——bash入门
linux·运维·shell
Swizard10 天前
Linux 日志神器 journalctl 完全指南:彻底替代传统日志查看方式
shell
吴声子夜歌11 天前
Shell编程——数组
linux·运维·shell