Fab*_*bby 0 bash arch-linux find locate manjaro
所以我有这个:
systemctl list-unit-files | grep --ignore-case networkmanager | grep --ignore-case service | cut --fields=1 --delimiter=" "
Run Code Online (Sandbox Code Playgroud)
作为输出给出:
NetworkManager-dispatcher.service
NetworkManager-wait-online.service
NetworkManager.service
Run Code Online (Sandbox Code Playgroud)
我有一点:
find / -name NetworkManager-dispatcher.service 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
具有以下输出:
/usr/lib/systemd/system/NetworkManager-dispatcher.service
Run Code Online (Sandbox Code Playgroud)
然而,
find / -name $(systemctl list-unit-files | grep --ignore-case networkmanager | grep --ignore-case service | cut --fields=1 --delimiter=" ") -print 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
什么都不给,而:
locate $(systemctl list-unit-files | grep --ignore-case networkmanager | grep --ignore-case service | cut --fields=1 --delimiter=" ")
Run Code Online (Sandbox Code Playgroud)
显示:
/etc/systemd/system/multi-user.target.wants/NetworkManager.service
/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service
/usr/lib/systemd/system/NetworkManager-dispatcher.service
/usr/lib/systemd/system/NetworkManager-wait-online.service
/usr/lib/systemd/system/NetworkManager.service
/usr/lib/systemd/system/NetworkManager.service.d
/usr/lib/systemd/system/NetworkManager.service.d/NetworkManager-ovs.conf
Run Code Online (Sandbox Code Playgroud)
为什么哦为什么没有 find 找到任何东西??? ;-)
在你问“那你为什么不使用 locate 之前?” ,答案是:我在 Manjaro 并且locate不是标准的,而find...
为什么哦为什么没有
find找到任何东西???
放下2>/dev/null并查看错误。这将是:
find: paths must precede expression: NetworkManager-wait-online.service
Run Code Online (Sandbox Code Playgroud)
-name只需要一个参数,你提供三个。第一个被接受。第二个未被识别为表达式的有效部分,因此find假设它是一个路径,(如/您提供的);但是“路径必须在表达式之前”。
调用在语法上是错误的,它只是失败而不是“什么也没找到”。
另一方面,locate可以很容易地采用多个模式。这并不意味着它完美无缺。不加引号往往$()是错误的。在这里,您希望拆分输出,但可能会出现其他问题。
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |