linux如何比较两个文件夹的差异,然后复制差异文件到另一个文件夹

linux如何比较两个文件夹的差异,然后复制差异文件到另一个文件夹,第1张

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#!/bin/bash

#

定义目录变量,便于引用

A=/tmp/A

B=/tmp/B

C=/tmp/C

#

显示B目录文件,按列显示,便于for循环时按行读取

ls

"$B"|awk

'{print

$n}'

>line

#

主程序

for

filename

in

`cat

line`

do

#

!

-f

判断文件名

-d

判断目录/

是否在路径下存在,如果精确匹配需要用到md5sum!

if

[

!

-f

"$A"/"$filename"

]

then

#

提示信息,可删除

echo

$filename

在"$A"不存在,正复制到"$C"目录!

#

cp

-rf

在C目录不存在时直接创建

cp

-rf

"$B"/$filename

"$C"

fi

done

#

清除生成的文件列表文件

rm

-rf

line

1

2

3

4

5

6

7

8

9

10

11

12

13

#!/bin/bash

A=/tmp/A

B=/tmp/B

C=/tmp/C

ls

"$B"|awk

'{print

$n}'

>line

for

filename

in

`cat

line`

do

if

[

!

-f

"$A"/"$filename"

]

then

echo

$filename

在"$A"不存在,正复制到"$C"目录!

cp

-rf

"$B"/$filename

"$C"

fi

done

rm

-rf

line

1、给每个目录所有文件生成hash值文件,然后再比较hash值文件区别。 2、创建文件 find ./dir1 -type f |xargs openssl md5 >a.txt find ./dir2 -type f |xargs openssl md5 >b.txt 3、比较 diff a.txt b.txt


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8800318.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存