分享个linux下一个文件夹文件更新到另一文件夹的的脚本
RT,有的时候要写个小程序,为了方便编辑把它放在虚拟机的共享目录下,然后在win中编辑,但是我的内核源码是在虚拟机里,这部分代码要拷到内核目录下编译,所以为方便搞了这样一个脚本,脚本检查本目录的所有文件和目标目录下的文件是否为最新的,
如果本目录下的文件是最新的或者目标目录下没有这个文件,则把这个文件更新到目标目录,
TAG="/XXX/XXX" #替换成你的目标目录
PWD=$(pwd)
PWD_LEN=${#PWD}
function ergodic(){
for file in $(ls $1)
do
if [ -d $1"/"$file ]; then
DIR=$1"/"$file
if [ -d $2${DIR:$PWD_LEN} ]; then#递归目录前检查目标目录是否存在
:
else
mkdir $2${DIR:$PWD_LEN}
fi
ergodic $1"/"$file $2
else
update $1 $2 $file #检测文件是否需要被更新
fi
done
}
function update(){
CURR_DIR=$1
TAG_DIR=$2${CURR_DIR:$PWD_LEN}
if [ -e $TAG_DIR"/"$3 ]; then #不存在直接拷贝,存在则再判断是否为最新
if [ $1"/"$3 -nt $TAG_DIR"/"$3 ]; then
cp -v $1"/"$3 $TAG_DIR
fi
else
cp -v $1"/"$3 $TAG_DIR
fi
}
ergodic $PWD $TAG
exit 0
新手水平有限,那里有不好的,或者有更好的写法,还请各位拍砖 代码开始要声明是什么类型的shell的,比如bash和cshell有语法差异,有可能会报错。
还有开发用的linux机器可以装x system,这样就可以直接编辑了。 dawanpi 发表于 2015-8-17 20:34
代码开始要声明是什么类型的shell的,比如bash和cshell有语法差异,有可能会报错。
还有开发用的linux机器 ...
谢谢指点{:handshake:} 不错,楼主都是金牌会员了,怎么还是新手了,谦虚了 yick 发表于 2015-8-17 22:54
不错,楼主都是金牌会员了,怎么还是新手了,谦虚了
linux相关的开发方面确实还算是新手, 菜鸟看不懂,不知道这个脚本如何运行 搞samba可以映射网盘
页:
[1]