在一个目录中而不是在另一个目录中查找文件

Wil*_*hin 16 linux filesystems command-line-interface

是否有任何 Linux/Unix 工具可以找到一个目录中不存在另一个目录中的所有文件?基本上,我正在寻找适用于 ls 输出的差异。

简短而甜蜜的脚本也很受欢迎。

tob*_*bym 22

diff 这样做已经:

diff dir1 dir2
Run Code Online (Sandbox Code Playgroud)

示例输出:

Only in dir1: some_file.txt
Only in dir1: some_other_file.txt
Only in dir2: third_file.txt
Run Code Online (Sandbox Code Playgroud)

  • 这很好。一个抱怨:​​diff 实际上在两个文件中的每个文件上运行。是否有一个晦涩的选项可以针对文件名运行(我可能错过了)?否则,我建议`diff dir1 dir2 | grep“仅”` (5认同)

Den*_*son 12

重击:

diff <(cd dir1; ls) <(cd dir2; ls)
Run Code Online (Sandbox Code Playgroud)

只比较文件名 - 而不是文件的内容。


War*_*ner 0

这有效..

ls -a1 /dir1 | sort > /tmp/1
ls -a1 /dir2 | sort > /tmp/2
diff /tmp/1 /tmp/2
Run Code Online (Sandbox Code Playgroud)