modlin Asked: 2018-03-04 17:16:42 +0800 CST2018-03-04 17:16:42 +0800 CST 2018-03-04 17:16:42 +0800 CST 两个目录的差异文件名? 772 所以,我ls -C1在两个目录上运行: mod@ux:~$ ls -C1 /bin | wc -l 165 mod@ux:~$ ls -C1 /sbin | wc -l 167 如何仅列出不同的文件名/命令以及包含它们的目录? bash diff 2 个回答 Voted ErikF 2018-03-04T17:36:54+08:002018-03-04T17:36:54+08:00 您可以将其直接与目录结构进行比较: $ diff /sbin /bin|sort Only in /bin: arping Only in /bin: attr Only in /bin: awk Only in /bin: basename [...] Only in /sbin: agetty Only in /sbin: arp Only in /sbin: arptables-compat Only in /sbin: badblocks -r如果您愿意,您也可以通过指定来添加递归。如果您不想了解常见的子目录,请添加grep -v "Common subdirectories"到管道中。 Best Answer user277591 2018-03-04T17:24:48+08:002018-03-04T17:24:48+08:00 执行diff <(ls -C1 /bin |sort) <(ls -C1 /sbin |sort) |less。 使用/bin和/sbin作为上述命令的输入,diff将附加<到唯一的文件/bin和>唯一的文件/sbin。如果您需要<and>来提供更多信息,可以使用sed将它们替换为更多信息字符串: diff <(ls -C1 /bin |sort) <(ls -C1 /sbin |sort) |sed -e 's/^< /\/bin\//' -e 's/^> /\/sbin\//'
您可以将其直接与目录结构进行比较:
-r
如果您愿意,您也可以通过指定来添加递归。如果您不想了解常见的子目录,请添加grep -v "Common subdirectories"
到管道中。执行
diff <(ls -C1 /bin |sort) <(ls -C1 /sbin |sort) |less
。使用
/bin
和/sbin
作为上述命令的输入,diff
将附加<
到唯一的文件/bin
和>
唯一的文件/sbin
。如果您需要<
and>
来提供更多信息,可以使用sed
将它们替换为更多信息字符串:diff <(ls -C1 /bin |sort) <(ls -C1 /sbin |sort) |sed -e 's/^< /\/bin\//' -e 's/^> /\/sbin\//'