フォローアップとしてこれ/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