题目:
编写一个脚本
用户输入两个文件的名称
分别判断这两个文件是否存在
判断这两个文件的类型是否相同
判断这两个文件的拥有者操作权限是否相同
若这两个文件都存在,且类型和操作权限都相等,则将较新的文件复制到目录/test 中,若两者的时间相同,则不做复制操作
知识点
1.if判断
# 参数
-e 判断文件是否存在
-d 判断目录是否存在
2.获取文件类型
# 截取文件名称最后一个.后的参数,做对比
# #符号*截取后保留右侧,从左向右开始数,2个##表示从右向左 %保留左侧 用*.
${#filename#*.}
- 获取文件权限
# 记得用awk参数用单引号
`ls -l $1 | awk '{print $1}'`
- 获取文件最新修改时间
`stat -c %Y $1`
完整代码:
#!/bin/bash
if [ ! -e $1 ]
then
echo ${1} '不存在'
exit 0
fi
if [ ! -e $2 ]
then
echo ${2} '不存在'
exit 0
fi
typeone=${1##*.}
typetwo=${2##*.}
if [[ $typeone != $typetwo ]
then
echo '文件类型不一致'
exit 1
fi
authone=`ls -l $1 | awk '{print $1}'`
authtwo=`ls -l $2 | awk '{print $1}'`
if [[ $authone != $authtwo ]]
then
echo '操作权限不一致'
exit 2
fi
updateone=`stat -c %Y $1`
updatetwo=`stat -c %Y $2`
if [ $updateone -lt $updatetwo ]
then
cp $2 /test
elif [ $updateone -gt $update ]
then
cp $2 /test
else
echo '两个文件最后更新时间一致'
exit
fi