Lunix/Mac下根据最后修改时间复制文件和文件夹,保持原有的目录结构

度娘知道:http://zhidao.baidu.com/link?url=DD47jm6qDgT7yxsnz9e-NC4Fqd33oRoiIwcGLkw5TL4cbf50VKY2IONbHKH0IE8wOEWsB3p4bhBF2-U3oE4tTa

执行的shell脚本(可看作一个函数吧):

 1 #!/bin/sh
 2
 3 show_usage() {
 4     echo "Usage: backup_f.sh src_folder bak_folder bak_date"
 5     echo "**********************************************"
 6     echo "src_folder - source folder to backup"
 7     echo "bak_folder - backup folder"
 8     echo "bak_date   - backup date in YYYYMMDD format"
 9     echo "bak_filename   - like this: ROOT.tar"
10     echo "**********************************************"
11 }
12
13
14 if [ $# -ne 4 ]; then
15     show_usage
16     exit 1
17 fi
18
19 src_folder="$1"
20 bak_folder="$2"
21 bak_date="$3"
22 bak_filename="$4"
23
24 bak_file="$bak_folder/$bak_filename" # 这里把备份文件名固定为backup.tar了,你可以根据需要做些修改
25 if [ -f $bak_file ]; then
26     rm $bak_file
27 fi
28 #echo $bak_file
29 #exit 1
30
31 tmpfile="`mktemp`"
32 touch -t ${bak_date}0000 $tmpfile
33 cd $src_folder
34 find . ! -name "persistence.xml" ! -path "./WEB-INF/logs*" ! -path "./Statics/*" ! -path "./scripts/lib/*"  -newer $tmpfile -exec tar rvf $bak_file {} \;
35 rm $tmpfile
36
37 if [ -f $bak_file ]; then
38 echo "backup file: $bak_file"
39 fi
40 #ls -l $bak_folder

调用的shel脚本:

1 #!/bin/sh
2 src_folder="/code/git/workSystem/src/main/webapp"
3 bak_folder="/Users/cnblogs/Documents/b2bweb"
4 last_modify_date="20151028"
5 bak_filename="ROOT.tar"
6
7 sh backup_f.sh $src_folder $bak_folder $last_modify_date $bak_filename

原来也用find命令弄过,都一直用着,但是突然在升级到OS X El Capitan后突然用不了,报错了:unknown primary or operator.

我查一下资料,都没有找到解决的办法,遂找回开头的百度知道答案,稍微改改,能用了。

时间: 2024-10-12 15:28:33

Lunix/Mac下根据最后修改时间复制文件和文件夹,保持原有的目录结构的相关文章

一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本

摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 @for&ever 2010-07-03 功能: 获取指定目录下面符合一定规则的文件名称和文件修改时间,并保存到指定的文件中 脚本如下: #!/usr/bin/env python# -*- coding: utf-8 -*- '''Created on 2010-7-2 @author: fore

Linux下普通用户修改时间问题!

今天公司突然要把所有测试环境ROOT密码收回,只发放普通用户权限.因为测试环境要经常改时间来测试,Linux下普通用户无修改时间权限.原本我的思路是写一个脚本(自动sodu到ROOT用户执行修改时间在切换回普通用户)脚本如下: #!/bin/bash exp () { expect -c " spawn su - root -c \"$2\" expect \": \" send \"$1\r\" expect eof " }

Windows下安装配置Yaf框架的方法及创建典型合理的Demo目录结构

Yaf是一个C语言编写的PHP框架,由鸟哥Laruence开发的高性能框架: Yaf官方文档:http://www.laruence.com/manual/index.html windows下安装Yaf具体步骤: 第一步:安装PHP扩展配置Yaf 1.查看PHP自己版本信息,如下图: 2.根据PHP版本号,编译器版本号和CPU架构,选择合适的Yaf扩展 这里的PHP版本为7.2.9,VC15 ,X86编译以及TS线程安全,所以,选下面的扩展版本: 选择php_yaf-3.0.7-7.2-ts-

Mac 下Versions的 svn无法上传 .a 文件的问题

实际开发中在用SVN版本管理软件的时候回遇到一些第三方库无法上传.a文件导致项目直接报错的情况,提示未找到.a文件. 这也是我在实际项目中遇到的问题,虽然你SVN可以提供一个很好的团队开发合并代码的平台,但也存在一些不让人省心的小问题,即便如此,我们依然不能拒绝使用SVN,所以只能解决他,以下就是我在互联网搜索到的相关解决办法,希望对大家有帮助! Xcode自带的svn和Versions以及一些其它工具都默认ignore".a"文件. 解决办法有两个: 方法一:使用命令行添加文件 1.

mac下查找代码并拷贝到一个单独文件夹

查看目录下有多少文件hao$ find ./ -type f -name '*vue' | wc -l计算这些文件的总代码数量haodeMBP:src hao$ find ./ -type f -name '*vue' | head -n 上面数量 | xargs -I{} cat {} | wc -l将这些代码拷贝到一个文件内haodeMBP:src hao$ find ./ -type f -name '*vue' | head -n 上面数量 | xargs -I{} cat {} > .

Mac下用命令行压缩和解压rar文件的方法(转)

废话不多说,直接进入主题 第一步:下载RAR工具包或https://www.rarlab.com/download.htm,根据自己需要下载相对应的版本 第二步:解压对应的压在的压缩包rarosx-5.4.0.tar.gz(我下载的是5.4.0版本) 第三步:从终端进入到解压文件夹rar,里面是刚才下载的文件 cd Downloads/rar 第四步: 执行安装rar和unrar工具的命令 rar:sudo install -c -o $USER rar /usr/local/bin/ unra

liunx下mysql数据库使用之三范式,关系模型设计注意项,安装目录结构

数据库的三范式第一范式===>每行记录的属性,是原子的,拆到不可拆为止.===>例如:一个人的籍贯,可以拆分为,省,市,县,乡,村 第二范式===>每行记录的非主属性(非主键属性),都完全依赖主属性(主键).===>每行的数据都能唯一区分.===>例如:一个学校的教师,他的姓名,年龄,性别,籍贯.都依赖它的教师编号===>而它教授的科目,并不依赖他的编号,则需要另建表,作为关系模型,进行存储 第三范式===>在实体关系中,如果不存在非关键字段对任一候选关键字段的函

Mac下修改hosts 解决访问github慢的问题

Mac下修改hosts 解决访问github慢的问题 mac下hosts文件在 /etc/hosts.所以先打开终端.然后输入如下命令,打开hosts文件. su vim /etc/hosts 输入mac管理员密码,就可以使用vim打开hosts文件.将如下github的host放到hosts文件中.在 vim 编辑中,按 "i"建进入插入模式,就可以将下面的 hosts 修改粘贴进入到hosts文件中. http://github.com 204.232.175.94 http://

delphi获取文件的创建/修改时间、按时间删除指定文件下的文件

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,DateUtils; ... //获取文件的创建时间 function GetFileCreationTime(const FileName: String): TDateTime; var FileTime: TFileTime; LocalFileTime: TFileTime; hFile: TH