후속 조치로이것/sys/class/net
질문, 저는 심볼릭 링크가 존재하는 인터페이스를 (다시) 검색하여 어떤 명령/명령 시퀀스가 아래 나열된 어떤 네트워크 인터페이스가 무선 인터페이스인지 알려줄 수 있는지 확인하려고 합니다 .wireless
내가 얻을 수 있는 가장 가까운 것은 를 사용하는 것이었습니다
ls -LR | grep wireless
. 비록 첫 번째 일치에서 멈추고 싶었지만 사용을 시도하고-m 1
파이핑을 시도head -1
했지만 일치 항목을 찾기 위한 파일 경로를 잃어버렸습니다. 실제로 제가 찾고 있는 것이 바로 일치 항목 자체는 사용되지 않는 것입니다. . 이 문제를 해결하지 못했습니다(추가를 시도했지만H
거래-m 1
는 없었습니다).또한, 왜
find /sys/class/net -type l
스스로 이 목표를 달성할 수 없나요? (를 사용하면sudo
동일한 결과가 나오므로 이러한 링크가 표시되지 않는 것은 문제가 되지 않습니다.)
답변1
glob을 사용하여 쉘에 대신 찾아달라고 요청할 수 있습니다.예를 들어
echo /sys/class/net/*/wireless
적절한 행동아니요무선 인터페이스의 존재 여부는 쉘과 해당 와일드카드 구성 옵션에 따라 다릅니다.
find
기본적으로 기호 링크는 따르지 않습니다. 추가하면-L
변경되지만 기본적으로 기호 링크를 따르지 않는 이유를 이해하게 됩니다.find -L /sys/class/net -name wireless
(심볼릭 링크는 사이클을 소개합니다).
완전한 수표를 다음과 같이 작성할 수 있습니다.
for ifc in /sys/class/net/*; do
if [ "$(cat ${ifc}/operstate)" = "up" ] && [ -d "${ifc}/wireless" ]; then
echo "${ifc##*/}"
fi
done