shell比较文件夹
① shell怎么比较两个文件夹的差别
如果说你的两个文件夹内容比较多的话,linux本身可能没有很好的命令可以用来比较
推荐用一些第三方的工具来做,比如beyond compare这些开源软件
② 用shell脚本实现两个文件比较
[root@localhostxly]#lla.txtb.txt
-rw-r--r--1rootroot28Jul1315:00a.txt
-rw-r--r--1rootroot30Jul1315:00b.txt
[root@localhostxly]#cata.txt
hello
123
thisisa.txt
456
[root@localhostxly]#catb.txt
hello!
123
thisisb.txt
4567
[root@localhostxly]#diffa.txtb.txt
1c1
<hello
---
>hello!
3,4c3,4
<thisisa.txt
<456
---
>thisisb.txt
>4567
1c1就是指2个文件第一行不一样
<指的是a.txt
>指的是b.txt
③ 用shell比较两个文件夹的不同(文件夹中包括子目录)不能用diff -r
#!/bin/bash
directory1 > file1.txt
directory2 >file2.txt
for i inf `cat file1.txt`
do
if (grep $i file2.txt > /dev/null);then
echo 0 > /dev/null
else
echo "文件目录$i在file2.txt中不同或不存在"
fi
done
④ Shell脚本得到文件夹大小
ls -ld 文件夹路径 | awk '{print int($5/1024)}'
或者:
-b 文件夹路径 | awk '{print int($1/1024)}'
跟你上面计算文件大小类似,得到的都是以KB为单位的大小。
如果要以Byte为单位,不要除以1024也不要int取整就是了。
注意:Linux的ext2或ext3文件系统会给目录分配一个inode块(索引节点),用来记录文件信息,所以文件夹的大小不是简单地将其中文件大小累加就能得到的,还包括了这个索引节点的大小。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。
⑤ 一个能够比较文件夹的shell脚本
题目没有说清楚,是2个文件夹比较,还是一个文件夹下面的文件夹与母文件比较,参数传入是一个文件夹路径传入还是2个文件路径传入,2个文件夹传入,比较什么,以什么为标准
⑥ shell判断文件夹内是否有文件
if [ `ls directory | wc` -eq 0 ]
then
echo "文件夹为空"
fi
#directory是要判断的文件夹,'是ESC键下面那个键不是单引号,手机不好打
⑦ shell怎么比较两个文件夹的差别
如果说你的两个文件夹内容比较多的话,linux本身可能没有很好的命令可以用来比较推荐用一些第三方的工具来做,比如beyond compare这些开源软件!
⑧ Linux 文件比较 shell
#!/bin/sh
#获取本机ip地址(如果是双网卡的话要排除其他ip)
ip=$(ifconfig | grep "inet addr" | grep -v 127.0.0.1 |awk '{print $2}' | awk -F ':' '{print $2}')
echo "$ip"
#文件中存放的ip地址
ip_txt=`cat ip.txt`
#判断ip地址是否相
if [ $ip == $ip_txt ];then
echo "发送邮件"
fi
exit
⑨ 编写shell脚本遍历目录比较同级目录中文件大小,输出比较结果
你问题描述有点不清楚的地方,如果存在
A/file2013-01-03.txt size=500Bytes
如何输出?
一个目录下只有两个文件么?有没有可能有很多很多个文件?
你问答清楚我的问题我帮你做。
⑩ 如何写个小SHELL比较2个文件的大小
#!/bin/sh
newer=`find $1 -newer $2`
if [ "$newer" == "$1" ]
then
echo "$1 is newer than $2"
else
echo "$1 is older than $2"
fi
保存为cmp.sh,加执行权限,比较文件f1和f2:
./cmp.sh f1 f2