検索が機能しません。作品を探す

検索が機能しません。作品を探す

だから私はこれを持っています:

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複数のモードを簡単に採用できます。だからといって完璧だという意味ではありません。引用符が$()ない場合よく間違いを犯す。ここでは出力を分割しようとしますが、他の問題がまだ発生する可能性があります。

関連情報