❶ linux如何比较两个文件夹的差异,然后复制差异文件到另一个文件夹
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
❷ 怎么快速对比两个Linux文件夹
一】可以通过ls -l|wc -l对比文件数量是否一样
二】可以通过ls -l >filename.txt然后再diff filename1.txt filename2.txt,将文件名列出来并重定向到一个文件,然后通过diff命令对比这两个文件即可找到有哪些文件不一致。
三】升级版,通过md5sum命令生成md5码,然后用for循环进行遍历对比