成功最有效的方法就是向有经验的人学习!

shell脚本——判断文件的属性、内容

#!/bin/sh

#文件路径 :/usr/local/1.txt
read myfile1
read myfile2

#判断文件1是否存在
if [ -e $myfile1 ]; then
echo '文件存在';
#判断文件1是否为空
if [ -s $myfile1 ]; then
echo '这个文件不为空';
else
echo '这个文件为空';
fi
else 
echo '不存在文件';
fi


#判断文件2是否存在
if [ -e $myfile2 ]; then
echo '文件存在';
#判断文件2是否为空
if [ -s $myfile2 ]; then
echo '这个文件不为空';
else
echo '这个文件为空';
fi
else 
echo '不存在文件';
fi

 

1、操作符”-e”用于仅判断文件是否存在

2、有三个操作符用于判断对文件的权限

2.1 “-x”判断是否有执行文件的权限

2.2 “-r” 判断是否有读文件的权限

2.3 “-w”判断是否有写文件的权限

3、另外一些文件操作符可以用来判断文件类型

3.1 “-f” 判断为常规文件

3.2 “-L”或者”-h”判断是否为符号链接文件

3.3 “-S” 判断是否为socket

3.4 “-d”判断是否为目录

3.5 其他一些 -b:判断是否为块设备文件,-c:用于判断是否为字符设备文件

4、”-s”判断文件是否为非空,即文件大小大于0,区分与大写S

#文件的字节数 、字数、行数
wc $myfile1 >aa.txt

wc $myfile2 >bb.txt


#文件的大小
du -h --max-depth=2 $myfile1 >>aa.txt

du -h --max-depth=2 $myfile2 >>bb.txt


#文件的权限
stat $myfile1 |grep Access | awk '{print $2}' >>aa.txt

stat $myfile2 |grep Access | awk '{print $2}' >>bb.txt


#文件最后修改时间
stat $myfile1 | grep Modify | awk '{split($3,var,".");print var[1]}' >>aa.txt

stat $myfile2 | grep Modify | awk '{split($3,var,".");print var[1]}' >>bb.txt

#比较文件aa.txt与文件bb.txt,确定文件1.txt与文件2.txt的大小、权限、修改时间

 

方法一:

(diff aa.txt bb.txt)

方法二:

CurRow=1
LastRow=`cat aa.txt | wc -l`


while [ $CurRow -le $LastRow ]
do 

for x in `awk 'NR=='$CurRow' {print $0}' aa.txt`
do

for y in `awk 'NR=='$CurRow' {print $0}' bb.txt`
do
if [ "$x" == "$y" ];then

echo "$x" >>result.txt

fi
done
done
((CurRow++))
done 

 

在result.txt文件中,保存了两个文件大小,时间的相同性质。

赞(0) 打赏
未经允许不得转载:陈桂林博客 » shell脚本——判断文件的属性、内容
分享到

大佬们的评论 抢沙发

全新“一站式”建站,高质量、高售后的一条龙服务

微信 抖音 支付宝 百度 头条 快手全平台打通信息流

橙子建站.极速智能建站8折购买虚拟主机

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册