📜  用于创建指定目录的压缩存档的 Shell 脚本(1)

📅  最后修改于: 2023-12-03 15:40:53.375000             🧑  作者: Mango

创建指定目录的压缩存档Shell脚本

在Linux中,可以用tar命令来创建压缩存档文件。而在Shell中,我们可以通过编写脚本来自动化这个过程。本篇文章将介绍如何创建一个用于指定目录压缩的Shell脚本。

简介

Shell脚本是一种可执行的文本文件,其中包含了一系列的命令,可以通过运行该脚本来自动执行这些命令。通过编写Shell脚本,我们可以加快一些工作的进程,减轻手动操作带来的繁琐和错误。

本脚本的功能是,接受一个参数,即待压缩的目录路径,然后将该目录压缩为.tar.gz格式的压缩存档文件。

实现

下面是该脚本的代码实现:

#!/bin/bash

# 检查参数是否传递正确
if [ $# -eq 0 ]; then
  echo "Usage: $0 path_to_folder"
  exit 1
fi

# 获取待压缩的目录路径
folder_path=$1

# 检查待压缩的目录是否存在
if [ ! -d $folder_path ]; then
  echo "Directory not exists: $folder_path"
  exit 1
fi

# 获取目录名
folder_name=$(basename $folder_path)

# 创建压缩存档文件
tar -czvf $folder_path.tar.gz $folder_path && echo "Compressed to $folder_name.tar.gz"

该脚本的具体实现,包含以下几个部分:

获取参数

我们使用$#来获取参数个数,若没有传递任何参数,则提示用户正确的使用方法,即Usage: $0 path_to_folder;如果传递了参数,则将第一个参数作为待压缩的目录路径。

检查目录是否存在

接受到参数之后,我们需要检查该目录是否存在。若不存在,则提示用户该目录不存在,并退出程序。-d参数用来检查$folder_path是否是一个目录,若是,则继续执行;若不是,则提示用户目录不存在。

创建存档文件

待目录存在之后,我们再开始创建存档文件。使用tar命令来创建.tar.gz格式的存档文件,其中:

  • -c参数用来创建新的存档文件;
  • -z参数用来将存档文件压缩为gz格式;
  • -v参数表示在创建存档文件时输出详细信息;
  • -f参数指定输出的文件的名称,即将存档文件保存为$folder_path.tar.gz

创建完毕后,我们在屏幕上输出提示信息,即该目录已经成功压缩为.tar.gz格式的存档文件,输出的信息为Compressed to $folder_name.tar.gz

使用

使用该脚本非常简单,只需要将该脚本保存为test.sh文件,然后在终端中输入以下命令即可:

$ chmod +x test.sh
$ ./test.sh path_to_folder

其中,chmod +x命令用来赋予test.sh文件可执行权限。

总结

本篇文章介绍了如何创建Shell脚本来自动化指定目录的压缩存档过程,详细讲解了脚本实现的思路和代码实现。通过对本脚本的学习,希望可以帮助您更好地理解和应用Shell脚本,提高工作效率。