1. zip如何排除文件夹
zip -r jason.zip jason/* -x jason/backports-4.4.2-1/\*
以上命令打包jason文件夹,排除其中的backports-4.4.2-1文件夹
如果改成这样:
zip -r jason.zip jason/* -x jason/backports-4.4.2-1\*
会排除其中以backports-4.4.2-1开头的文件和文件夹,比如jason下还有文件backports-4.4.2-1.tar.gz,也会被排除。
那这样呢?
zip -r jason.zip jason/* -x jason/backports-4.4.2-1/**\*
会排除backports-4.4.2-1目录下的所有文件和文件夹,backports-4.4.2-1目录保留
zip -r jason.zip jason/* -x jason/backports-4.4.2-1/*
这样只排除backports-4.4.2-1目录下的文件了
2. zip打包指定时间内的文件
zip支持-t(--from-date mmddyyyy), -tt(--before-date mmddyyyy)参数,可以根据mtime打包文件。"yyyy-mm-dd"格式也支持。
zip -rt 2016-11-11 jason.zip jason
那要根据ctime,atime呢,只能借助find了,使用find的优点是支持更精确的时间。
CentOS 7 find支持-newerXY参数,如根据ctime则为-newerct,可以查找ctime比指定时间新的文件。
find jason -newerct "2016-11-11 11:11:11" | zip -@ jason.zip
CentOS 6 find不支持-newerXY,只能使用参数-ctime,-atime/-cmin,-amin, 只是要计算一下时间,稍麻烦点。
find jason -cmin -100 | zip -@ jason.zip
可以通过以下的dateDiff function计算时间,比如:
min=$(date_diff "-m" "now" "2016-11-11 11:11")
#!/bin/bash date2stamp () { date -d "$1" +%s } dateDiff () { case "$1" in "-s") sec=1 shift ;; "-m") sec=60 shift ;; "-h") sec=3600 shift ;; "-d") sec=86400 shift ;; *) sec=86400 ;; esac date1=$(date2stamp "$1") date2=$(date2stamp "$2") diffSec=$((date2-date1)) if [ "$diffSec" -lt 0 ]; then abs=-1 else abs=1 fi # 通过echo返回值 echo $((diffSec/sec*abs)) }
3. 示例Shell
#!/bin/bash . $(dirname $0)/datediff.sh FILE_PATH="File" EXCLUDE="File/tmp/\* File/20140505/\*" FORMAT1="+%Y-%m-%d %H:%M:%S" FORMAT2="+%Y%m%d%H%M" start_time1=$(date "$FORMAT1") start_time2=$(date "$FORMAT2") backup_all() { echo "$start_time1 start backup all files" filename=$(get_filename "all" "$start_time2") zip -r "$filename" "$FILE_PATH"/* -x "$EXCLUDE" echo $(date "$FORMAT1") backup finished } backup_from() { echo "$start_time1 start backup files from $1" filename=$(get_filename $(date_format "$1") "$start_time2") min=$(date_diff "-m" "$1" "now") find "$FILE_PATH" -cmin -"$min" | zip -@ "$filename" # zip "$filename" -d "$EXCLUDE" echo $(date "$FORMAT1") backup finished } backup_range() { echo "$start_time1 start backup files from $1 to $2" filename=$(get_filename $(date_format "$1") $(date_format "$2")) min1=$(date_diff "-m" "$1" "now") min2=$(date_diff "-m" "$2" "now") find "$FILE_PATH" -cmin -"$min1" -cmin +$(($min2-1)) | zip -@ "$filename" # zip "$filename" -d "$EXCLUDE" echo $(date "$FORMAT1") backup finished } date_format () { date -d "$1" "$FORMAT2" } get_filename () { echo "File_$1_$2.zip" } check_date () { flag=$(echo "$1" | grep -cE "(^[0-9]{4}-[0-9]{2}-[0-9]{2}$)|(^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$)") if [ "$flag" -ne 1 ]; then echo "failure" fi } if [ "$#" -eq 2 ]; then flag1=$(check_date "$1") flag2=$(check_date "$2") if [ "x$flag1" = "x" ] && [ "x$flag2" = "x" ]; then backup_range "$1" "$2" else echo "Please input valid date" fi exit fi case "$1" in "-h"|"--help") echo "Usage: $0 {all|2016-11-11|'2016-11-11 11:11'|2016-11-11 '2016-11-13 23:59'} exit 1 ;; "all") backup_all ;; *) flag=$(check_date "$1") if [ "x$flag" = "x" ]; then backup_from "$1" else echo "Please input valid date" fi ;; esac
相关推荐
"chromium-linux.zip" 是一个包含了 Chromium 浏览器针对 Linux 操作系统的源代码压缩包。Chromium 是 Google Chrome 浏览器的开源版本,它为开发者提供了浏览器的基础架构,以便进行定制和改进。这个压缩包主要是...
在本Linux实验.zip文件中,包含了从实验1到实验7的系列内容,这些实验旨在帮助学习者深入理解和掌握Linux操作系统的基础知识与操作技巧。Linux作为一款开源、免费的类UNIX操作系统,广泛应用于服务器、嵌入式设备...
"Linux命令大全.zip"这个压缩包文件显然是为那些想要学习或巩固Linux命令知识的人准备的。在这个文档中,我们将深入探讨Linux命令的核心概念,常用命令以及它们的应用场景。 Linux命令行界面,也被称为终端或Shell...
"csdn_linux.zip"这个压缩包文件显然包含了一系列与Linux学习相关的资源,可能是教程、代码示例、文档或者是其他的学习材料。让我们深入探讨一下Linux学习的一些关键知识点。 1. **Linux基础知识**:Linux是一种...
本压缩包“Linux系统安装包.zip”提供了一系列在Linux环境下常用的软件和工具,包括MySQL8.0数据库、nginx1.2 web服务器、Java Development Kit (JDK) 8以及redis5内存数据存储服务和xshell6终端模拟器。以下是这些...
"linux部署需要.zip"这个压缩包显然包含了进行Linux系统部署时可能会用到的各种工具和资源。下面,我们将深入探讨Linux部署的相关知识点。 1. **Linux发行版选择**:Linux有多种发行版,如Ubuntu、CentOS、Debian、...
标题“dnw-linux.zip”表明这可能是一个针对Linux操作系统的软件或工具包,可能是专为Ubuntu 19.04(Disco Dingo)版本设计的。Ubuntu是基于Debian的开源Linux发行版,以其用户友好性和丰富的软件库而闻名。19.04...
linux进程的一切知识.zip 进程占用的内存空间布局,虚拟空间地址分布 进程启动的3种方式 监控子进程的状态 进程的终止 僵尸进程
标题 "cobaltstrike-linux.zip" 暗示了这是一个针对Linux系统的Cobalt Strike工具包。Cobalt Strike是一款广泛使用的网络安全评估工具,主要用于红队操作、渗透测试和模拟攻击,帮助安全专业人员评估组织的安全防护...
这个名为“Linux下c编程.zip”的压缩包包含两份宝贵的资源:“Linux下c编程.pdf”和“Linux下的C编程实战.pdf”,它们为初学者提供了深入理解和实践Linux+C的宝贵材料。 首先,“Linux下c编程.pdf”可能涵盖了如何...
标题中的“10201_database_linux32.zip”表明这是一个与Oracle数据库相关的压缩文件,特别指出是针对Linux 32位系统的。Oracle数据库是世界上最流行的关系型数据库管理系统之一,尤其在企业级应用中广泛使用。这个...
CHM文件“Linux常用命令全集”可能包含了如下的主要知识点: 1. **文件与目录管理**: - `ls`:列出目录内容。 - `cd`:切换当前工作目录。 - `mkdir`:创建新目录。 - `rm`:删除文件或目录。 - `cp`:复制...
在“linux_src.zip”这个压缩包中,我们可以期待找到一系列关于Linux内核的深入分析和详细资料,特别是关于GPIO子系统、电源管理子系统以及文件系统的探讨。 GPIO(General Purpose Input/Output)子系统是Linux...
这个"Linux watchdog.zip"文件包含了与Linux Watchdog相关的源码,特别是针对A8芯片优化的部分,这表明它可能是一个特定硬件平台的实现。 源码中的`Makefile`文件是构建工程的重要组成部分,用于指示编译器如何编译...
总之,Linux系统安装涉及多个层面,从前期的规划、硬件准备,到安装过程中的各种配置,再到后期的维护和优化,都需要一定的知识和实践。通过不断学习和尝试,你会发现Linux不仅是一个强大的操作系统,也是一个充满...
总之,"obsidian linux zip"指的是在Linux系统上使用ZIP格式打包的Obsidian应用相关文件,主要涉及如何在Linux下解压ZIP文件,运行AppImage格式的应用,以及如何利用Obsidian进行知识管理和Markdown编写。...
【标题】"chromedriver_linux64.zip" 是一个专为...通过上述知识点,我们可以理解"chromedriver_linux64.zip"文件在Selenium自动化测试中的关键作用,以及如何在Python环境下利用它来实现对Chrome浏览器的自动化控制。
在"网上人写的LinuxOS.zip"这个压缩包中,包含了一些与Linux系统相关的资源,可能是教程、文档或者镜像文件。让我们逐一分析这些子文件: 1. **fairysky_0.01_20060612_153602.tar.gz** - 这个文件名暗示了一个早期...
以上各个知识点构成了一个全面的嵌入式Linux学习路径,从基础应用到系统级的深入开发,有助于开发者理解和掌握嵌入式系统的设计与实现。通过这些文档,学习者可以逐步建立自己的嵌入式Linux技能,为从事相关领域的...
下面我们将详细探讨Linux与Java 8的相关知识点。 首先,让我们了解一下Java 8。Java 8是Oracle公司发布的Java平台标准版(Java SE)的第8个版本,于2014年发布。这一版本引入了许多重大改进和新特性,如: 1. **...