#!/bin/bash # 压缩文件 function compress_file(){ local file=$1 tar -czvf "${file}.tar.gz" "$file" echo "文件压缩完成!" } # 解压缩文件 function decompress_file(){ local compressed_file=$1 tar -xzvf "$compressed_file" echo "文件解压缩完成!" } # 压缩目录 function compress_directory(){ local directory=$1 tar -czvf "${directory}.tar.gz" "$directory" echo "目录压缩完成!" } # 解压缩目录 function decompress_directory(){ local compressed_directory=$1 tar -xzvf "$compressed_directory" echo "目录解压缩完成!" } # 主程序入口 function main(){ echo "请选择操作:" echo "1. 压缩文件" echo "2. 解压缩文件" echo "3. 压缩目录" echo "4. 解压缩目录" read -p "请输入选项数字:" option case $option in 1) read -p "请输入待压缩的文件名:" file compress_file $file;; 2) read -p "请输入待解压缩的文件名:" compressed_file decompress_file $compressed_file;; 3) read -p "请输入待压缩的目录名:" directory compress_directory $directory;; 4) read -p "请输入待解压缩的目录名:" compressed_directory decompress_directory $compressed_directory;; *) echo "输入错误!" esac } # 调用主程序入口 main
以上是Linux下使用Shell脚本实现文件和目录的压缩与解压缩的方法。通过调用tar命令,我们可以方便地对文件和目录进行压缩和解压缩操作。在脚本中,我们定义了四个函数,分别用于压缩文件、解压缩文件、压缩目录和解压缩目录。
在主程序入口中,我们通过用户输入选择不同的操作,然后调用对应的函数进行操作。用户可以选择压缩文件、解压缩文件、压缩目录或解压缩目录。输入错误的选项会提示输入错误,并退出程序。
在使用这些函数时,只需输入待处理文件或目录的名称,脚本会自动在当前目录下生成相应的压缩文件或解压缩文件。