#!/bin/bash
# 该脚本用于打包某目录(可以是绝对路径)下的指定扩展名的文件
if [ $# -lt 1 ] || [ "$1" = "." ] || [ "$1" = "./" ]; then
DIR=`pwd`
else
DIR=$1
if [ ! -e $DIR ]; then
echo "Directory-[$DIR] not exist, exit now!"
exit
fi
fi
packageName=`basename $DIR`.tar.gz                       # 压缩包文件名
if [ -e "$packageName" ]; then
mv -f $packageName "$packageName".bak             # 备份原有的压缩包
fi
packSrcs()                                              # 查找相关文件并打包
{
DIR=$1
packageName=$2
pattern=$3
IFS='|' read -a array <<< "$patten"                   # 将pattern以"|"作分割, 将结果存入array
n=${#array[@]}
index=1
# 接下来组合查找字符并打包的字符串
findstr="find $DIR -name '*${array[0]}'"
while test $index -lt $n
do
findstr="$findstr -o -name '*${array[index]}'"
let "index = index + 1"
done
dosh="$findstr | xargs tar -P -zcvf $packageName"
#echo $dosh
eval $dosh                                          # 将字符串当命令执行
}
patten=".lua|.luac|.sh|.bat|.cpp|.c|.h|.hpp|.sln"        # 要打包的文件的扩展名
#patten=".lua|.sh|.bat"
packSrcs $DIR $packageName $pattern                     # 调用打包函数

具体用法:

1. sh do.sh

2. sh do.sh .

3. sh do.sh ./

4. sh do.sh server

5. sh do.sh server/

6. sh do.sh /mnt/data/server

[bash] 打包某目录(可以是绝对路径)下的指定扩展名的文件相关推荐

  1. python文件操作2:在指定目录下查找指定后缀名的文件

    在指定目录下查找指定后缀名的文件,要查找所有子目录,返回文件路径名列表 import osdef get_full_filelist(base_dir='.', target_ext='') -> ...

  2. C++查找一个目录下所有特定扩展名的文件

    记录一个小技巧,查找一个目录下所有特定扩展名的的文件名.代码所示是查找所有后缀为".txt"的文件名,并将结果存储于名为statfileurllist的vector中 注:也可以查 ...

  3. python获取指定扩展名的文件_python查找目录下指定扩展名的文件实例

    Python 今天小编就为大家分享一篇pytorch nn.Conv2d()中的padding以及输出大小方式,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 ... qq_30468 ...

  4. 批量将磁盘上所有文件的路径地址、文件名、扩展名和文件夹名整理到 Excel 表格中

    概要:对于经常整理文件的小伙伴来讲,需要批量的使用到所有文件的文件的路径地址.文件名还有扩展名,如果有一种方法能够批量的将所有的文件的路径地址.文件的扩展名,还有所在的文件夹的名称能够自动的整理到Ex ...

  5. C#路径中获取文件全路径、目录、扩展名、文件名称

    常用函数 需要引用System.IO   直接可以调用Path的静态方法 1 class Program2 {3 static void Main(string[] args)4 {5 6 //获取当 ...

  6. Bash脚本删除相对路径下小于指定大小的文件

    #!/bin/bashout_path=../自定义的相对路径 find $out_path -size -1k -exec rm {} \; # 删除这个相对路径下小于1k的文件

  7. 在MATLAB中读取同一路径下多个txt或mat文件

    1.matlab中给我们提供了dir这个函数,十分方便.这里是读取所有txt文件,所以是dir('父目录路径\*.txt'),读取其它格式文件一样,如读取该路径下的所有png图像文件,则为dir('父 ...

  8. Go语言获取文件的文件路径、文件名、扩展名

    文章目录 一.引入包 二.获取路径中的目录及文件名 三.获取路径中的文件名 四.获取路径中的文件扩展名 一.引入包 import ("fmt""path/filepath ...

  9. Asp.Net 获取FileUpload控件的文件路径、文件名、扩展名

    FileUpload获取文件路径.文件名等方法教程 //获取文件所在地分区 string PathRoot = Path.GetPathRoot(FileUploadImg.PostedFile.Fi ...

最新文章

  1. 11.Map集合之实现类HashMapHashtableTreeMapLinkedHashMapProperties浅析
  2. mysql存储过程中as_Mysql存储过程中的delimiter
  3. HTML和css重要的知识点,html 和 css 基础知识点(一)(示例代码)
  4. 消息中间件--RabbitMQ --死信队列
  5. 通过CVS同步Spring源码
  6. Visual Studio Code compile error - launch.json must be configured...
  7. CTP: 初始化成功和TradeAPI、MDAPI登陆成功
  8. linux 端口映射设置
  9. 高等代数第3版下 [丘维声 著] 2015年版_书籍推荐 | 关于数学分析和高等代数
  10. c语言一个字符串怎么做除法,c语言实数除法怎样保留小数部分
  11. 在pycharm中查看opencv版本
  12. 【Java】soap协议发送webservice请求工具类
  13. 【ES系列五】——集群搭建(多机集群单机多节点集群)
  14. 调用excel加载项实现多元回归方程求解
  15. 阿里面试官:你知道Dubbo的服务暴露机制么?
  16. 综合实验:LVS+LAMP+NFS+MySQL读写分离
  17. Proximity sensor---Px318J
  18. 亚马逊EC2使用账号密码登录
  19. ChatGPT 大规模封号,并停止注册!
  20. 如何实现ps的批量处理图片

热门文章

  1. wcf会话、实例化、并发
  2. Linux DHCP Server 配置给FIT AP 使用的option
  3. 新增两款Skin(clover与Valentine)
  4. 68. 文本左右对齐
  5. JPA JoinColumn vs mappedBy
  6. leetcode 191. 位1的个数(位运算)
  7. leetcode851. 喧闹和富有(dfs)
  8. pymc3 贝叶斯线性回归_使用PyMC3估计的贝叶斯推理能力
  9. 棒棒糖 宏_棒棒糖图表
  10. Centos7.5 VMtools的安装与卸载