linux 比较两个文件夹提取不同的文件

有两个文件夹~/A和~/B,B文件夹中有A的所有文件,还有若干个其它文件。
想用bash命令或者sh脚本把B比A多的这些文件提取到单独的文件夹~/C,应该如何实现?
不需考虑文件的内容,同样的文件名即可认为文件相同
A和B文件夹中只有文件,没有文件夹

#!/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


#!/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

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答