Find the files existing in one directory but not in the other

11 浏览
0 Comments

Find the files existing in one directory but not in the other

关闭。该问题不符合Stack Overflow准则。它目前不接受回答。


 

此问题似乎与特定的编程问题、软件算法或主要由程序员使用的软件工具无关。如果您认为这个问题在另一个Stack Exchange站点上是相关的,您可以留下评论以解释问题可能能在哪里得到解答。

锁定。此问题及其回答之已被锁定,因为该问题与主题不符,但具有历史意义。当前不接受新的答案或互动。

我试图找到存在于一个目录中但不存在于另一个目录中的文件,我尝试使用以下命令:

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

另一个问题是我如何在单个命令中找到不在dir2dir3中的dir1文件?

admin 更改状态以发布 2023年5月23日
0
0 Comments

这个应该能完成工作:

diff -rq dir1 dir2

选项解释(通过diff(1)man页面):

  • -r - 递归比较任何发现的子目录。
  • -q - 仅输出文件是否不同。
0
0 Comments

diff -r dir1 dir2 | grep dir1 | awk '{print $4}' > difference1.txt

说明:

  • diff -r dir1 dir2 会显示哪些文件只存在于 dir1,哪些只存在于 dir2,以及如果有的话,这两个目录中共存文件的更改。

  • diff -r dir1 dir2 | grep dir1 会显示哪些文件只存在于 dir1。

  • awk 可以用来只打印文件名。

0