如何区分两个目录中的文件名(不写入中间文件)?

bgu*_*uiz 34 diff ls filenames

我正在尝试做一些事情:

diff `ls -1a ./dir1` `ls -1a ./dir2`
Run Code Online (Sandbox Code Playgroud)

但由于显而易见的原因,这不起作用。有没有比这更好的方法来实现这一点(在 1 行中)?

ls -1a ./dir1 > lsdir1
ls -1a ./dir2 > lsdir2
diff lsdir1 lsdir2
Run Code Online (Sandbox Code Playgroud)

谢谢

Ign*_*ams 53

你很接近。在 bash 中,您需要进程替换,而不是命令替换:

diff <(ls -1a ./dir1) <(ls -1a ./dir2)
Run Code Online (Sandbox Code Playgroud)

  • 除了答案不同的是内容,而不是文件名! (4认同)

fse*_*eto 10

diff -rq dir1 dir2
Run Code Online (Sandbox Code Playgroud)

使用 -r 选项,遍历整个目录树,递归检查子目录和文件之间的差异,这些差异出现在每个树中的可比较点。诀窍是使用 -q 选项来抑制逐行比较

  • @festo :您错过了这个问题的重点,我实际上并不想比较文件的内容,我想比较 `ls` 命令的输出 (4认同)