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

在一个linux服务器上有文件夹A和B,B文件夹相比A文件夹有一些新文件,并且部分同名文件的文件内容有差异。请问能不能实现比较A和B文件夹,并把B文件夹中的新文件和差异文... 在一个linux服务器上有文件夹A和B,B文件夹相比A文件夹有一些新文件,并且部分同名文件的文件内容有差异。
请问能不能实现比较A和B文件夹,并把B文件夹中的新文件和差异文件复制到一个新的文件夹里?
目录下的所有子文件夹也要比对。
展开
 我来答
可爱的刻骨相思
2017-12-17 · TA获得超过5584个赞
知道小有建树答主
回答量:1.1万
采纳率:58%
帮助的人:430万
展开全部
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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式