尝试找到/usr/include/freetype2/ft2build.h
系统中文件链接的位置:
sudo find -L / -samefile /usr/include/freetype2/ft2build.h
这会带来很多错误File system loop detected
find: File system loop detected; `/sys/bus/cpu/devices/cpu0/node0/memory0/subsystem/devices/memory2/firmware_node/subsystem/devices/PNP0303:00/physical_node/subsystem/devices/00:06/tty/ttyS0/subsystem/ttyS2/device/subsystem/devices/i8042/serio1/subsystem/drivers/atkbd/serio0/input/input1/device' is part of the same file system loop as `/sys/bus/cpu/devices/cpu0/node0/memory0/subsystem/devices/memory2/firmware_node/subsystem/devices/PNP0303:00/physical_node/subsystem/devices/00:06/tty/ttyS0/subsystem/ttyS2/device/subsystem/devices/i8042/serio1/subsystem/drivers/atkbd/serio0'.
我不知道是什么File system loop
,但我想这与我所寻找的内容无关。因此,我决定通过命令过滤此错误:
sudo find -L / -samefile /usr/include/freetype2/ft2build.h |grep -v File system loop detected
但这并不能消除输出中的错误。
我的 grep是什么File system loop
以及有什么问题?
答案1
这是一个文件系统循环:
/lib/recovery-mode/recovery-mode -> /lib/recovery-mode
如您所见,/lib/recovery-mode/recovery-mode
这是该目录的符号链接/lib/recovery-mode
。
find
已在 中搜索/lib/recovery-mode
,因此没有必要再按照符号链接/lib/recovery-mode/recovery-mode
在同一个位置进行搜索/lib/recovery-mode
。
find
这就是显示文件系统循环消息的原因,您可以忽略此消息,因为find
将跳过此符号链接并继续继续。
错误显示在 STDERR 上,而不是 STDOUT 上,因此您需要grep
在 STDERR 上使用。
有很多方法可以实现这一点,最简单的方法是将 STDOUT 和 STDERR 都发送到grep
:
sudo find .... |& grep -v 'File system loop detected'