我有一个项目放在/home/admin/project01 目录下,目录里还有子目录,一共有100个文件
然后有个更新的版本update01 里面存放着要更新的10个文件
在更新前我需要把porject01里面的需要更新的10个文件保持目录结构复制出来,用做备份,然后再用update01覆盖更新
请问有什么命令能一次把porject01里面的那10个旧文件复制出来备份?
下面是有人写的,但是我不知道这三行代表什么意思,后面的变量生成的是什么?
backup_from=${y/./$pro_dir}
backup_to=${y/./$back_dir}
backup_dir=${backup_to%/*}
#!/bin/bash
#通过用户输入获取部署所需目录位置
echo "please print svn_dir:"
read svn_dir
if [ ! -d $svn_dir ];then
echo 'invalid dirpath'
exit
else
cd $svn_dir
svn_dir=$(pwd)
fi
echo "please print back_dir:"
read back_dir
if [ ! -d $back_dir ];then
echo 'invalid dirpath'
exit
else
cd $back_dir
back_dir=$(pwd)
fi
echo "please print pro_dir:"
read pro_dir
if [ ! -d $pro_dir ];then
echo 'invalid dirpath'
exit
else
cd $pro_dir
pro_dir=$(pwd)
fi
#获取svn文件列表 以供备份使用
cd $svn_dir
svnfile=$(find . -path '*/.svn' -prune -o -print)
echo "backup log ....:"
for y in $svnfile
do
if [ ! -d $y ];then
backup_from=${y/./$pro_dir}
backup_to=${y/./$back_dir}
backup_dir=${backup_to%/*}
if [ ! -d $backup_dir ];then
mkdir -p $backup_dir
fi
if [ -f $backup_from ];then
cp -rf $backup_from $backup_to
echo "cp -rf $backup_from $backup_to"
fi
fi
done
echo "backup done";;
本帖最后由 gnepuil 于 2014-7-24 16:28 编辑
分享至: