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