그래서 나는 이것을 가지고 있습니다 :
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
인수는 하나만 필요하며 세 개를 제공했습니다. 첫 번째 것이 허용됩니다. 두 번째는 표현식의 유효한 부분으로 인식되지 않으므로 find
(제공한 것과 같은) 경로로 간주되지만 /
"경로가 표현식 앞에 있어야 합니다."
호출이 구문상 잘못되었습니다.실패하다"아무것도 발견되지 않았습니다."가 아니라
반면에 locate
여러 모드를 쉽게 채택할 수 있습니다. 그렇다고 해서 완벽하다는 뜻은 아닙니다. 따옴표가 $()
없으면종종 실수를 한다. 여기서는 출력을 분할하려고 하지만 다른 문제가 여전히 발생할 수 있습니다.