我正在比较两个非常大的文件系统(与迁移有关)和diff -qr很棒但是现在由于用户使用新位置,文件已经改变了。我有一种方法可以使用diff,grep或其他任何东西来比较文件是否存在,即:忽略文件不同的事实。最新的差异有很多: 仅在/ dir1 / myFile中 仅在/ dir2 / myFile中 在里面。有没有一种简单的方法可以使用grep来显示dir2中根本不存在的文件,这些文件存在于dir1中或者使用diff执行类似的操作。
答案 0 :(得分:1)
你可以使用:
tree /path/to/dir1 > out1
tree /path/to/dir2 > out2
diff out1 out2 | grep ">"
但我发现beyond compare更适合这样的工作。
答案 1 :(得分:1)
您也可以使用命令comm
comm -1 -2<(ls / path_to_dir-1 /)<(ls / path_to_dir-2 /)
请查看以下链接以获取更多信息:
答案 2 :(得分:0)
上面的一个内容很棒,但是这个bash脚本可以让您进行更多自定义:可以将-e
更改为! -e
或跳过某些文件。
for f in $(find old/ -type f) ;
do
if [ -e "new/${f}" ] ;
then
echo "${f} exists" ;
fi ;
done