我试图找到一个目录中存在的文件,但不在另一个目录中,我尝试使用这个命令:
diff -q dir1 dir2
上面这个命令的问题是,它在dir1中找到了文件,但在dir2中没有找到,在dir2中找到了文件,但在dir1中没有找到,
我正在寻找dir1中的文件,而不是dir2中的文件。
下面是我的数据的一个小样本
dir1 dir2 dir3
1.txt 1.txt 1.txt
2.txt 3.txt 3.txt
5.txt 4.txt 5.txt
6.txt 7.txt 8.txt
我脑子里的另一个问题是,如何在一个命令中找到dir1中的文件,而不是dir2或dir3中的文件?
进行这种比较的一个好方法是使用find和md5sum,然后使用diff。
例子:
使用find列出目录中的所有文件,然后计算每个文件的md5散列,并将其输送到一个文件:
find /dir1/ -type f -exec md5sum {} \; > dir1.txt
对另一个目录执行相同的步骤:
find /dir2/ -type f -exec md5sum {} \; > dir2.txt
然后用"diff"比较结果两个文件:
diff dir1.txt dir2.txt
当要比较的两个目录不在同一台机器上,并且需要确保两个目录中的文件相等时,此策略非常有用。
完成这项工作的另一种好方法是使用git
git diff --no-index dir1/ dir2/
最好的问候!
进行这种比较的一个好方法是使用find和md5sum,然后使用diff。
例子:
使用find列出目录中的所有文件,然后计算每个文件的md5散列,并将其输送到一个文件:
find /dir1/ -type f -exec md5sum {} \; > dir1.txt
对另一个目录执行相同的步骤:
find /dir2/ -type f -exec md5sum {} \; > dir2.txt
然后用"diff"比较结果两个文件:
diff dir1.txt dir2.txt
当要比较的两个目录不在同一台机器上,并且需要确保两个目录中的文件相等时,此策略非常有用。
完成这项工作的另一种好方法是使用git
git diff --no-index dir1/ dir2/
最好的问候!