从命令行比较两个目录的内容
要比较和列出两个目录的不同内容,而无需通过 diff 等命令获得的额外输出,您可以改用 comm 命令。要开始,请启动终端并键入以下命令,并根据需要调整目录路径:
comm -3 <(ls -1 folder1) <(ls -1 folder2)
列出的输出将是每个文件夹中不同的文件,文件夹1特有的文件左对齐,文件夹2特有的文件右对齐。
例如,要比较用户下载目录中名为“Pictures”的文件夹和名为“OldPictures”的文件夹的内容,语法如下:
comm -3 <(ls -1 ~/下载/图片) <(ls -1 ~/下载/旧图片)
输出可能如下所示:
$ comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures) Folder-1-File.PNG 文件夹-2-文件复制.PNG照片1份.PNG照片3.PNG
注意缩进,它显示每个文件夹中哪些文件是唯一的。在上面的示例中,文件“photo 1 copy.PNG”和“photo 3.png”右对齐,因此它们对于 OldPictures 目录和 Folder-1-File 是唯一的。PNG和Folder-2-File copy.PNG是原来的Pictures文件夹特有的
这在 Mac OS X 中运行良好,但它是一个通用的 unix 命令,因此您应该会发现它在 linux 和其他变体中也可用。如果您确实遇到任何兼容性问题,或者发现此命令不必要地复杂,请尝试使用 diff 来执行相同的功能。
@climagic 在推特上发现的绝招,@osxdaily 也在推特上!