だから私はこれを持っています:
systemctl list-unit-files | grep --ignore-case networkmanager | grep --ignore-case service | cut --fields=1 --delimiter=" "
出力は次のとおりです。
NetworkManager-dispatcher.service
NetworkManager-wait-online.service
NetworkManager.service
私は少しあります:
find / -name NetworkManager-dispatcher.service 2>/dev/null
出力は次のとおりです。
/usr/lib/systemd/system/NetworkManager-dispatcher.service
しかし、
find / -name $(systemctl list-unit-files | grep --ignore-case networkmanager | grep --ignore-case service | cut --fields=1 --delimiter=" ") -print 2>/dev/null
次の期間中は何も提供されません。
locate $(systemctl list-unit-files | grep --ignore-case networkmanager | grep --ignore-case service | cut --fields=1 --delimiter=" ")
示す:
/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
なぜああ、なぜダメですか? find
何かをお探しですか? ? ? ;-)
尋ねる前に「では、ポジショニングを使うのはどうですか?」、答えは次のとおりです。私はlocate
標準ではなくManjaroを使用していますがfind
...
答え1
なぜ何も
find
見つかりませんでしたか? ? ?
それを削除し2>/dev/null
てエラーを見てください。これは〜になります:
find: paths must precede expression: NetworkManager-wait-online.service
-name
買収は1つだけ必要で、3つを提供しました。最初のものが許可されます。 2番目は式の有効な部分として認識されないためfind
(提供されたものなど)パスと見なされますが、/
「パスは式の前になければなりません。」
呼び出しが構文上無効です。失敗する「何も見つかりませんでした」ではなく
一方、locate
複数のモードを簡単に採用できます。だからといって完璧だという意味ではありません。引用符が$()
ない場合よく間違いを犯す。ここでは出力を分割しようとしますが、他の問題がまだ発生する可能性があります。