linuxのターミナルを使っているとまれに遭遇するエラー。
rootしか見れないディレクトリで、普通にlsをすると見えるのに、
ls *とワイルドカードをつけると読めなくなる場合があります。
これ、ワイルドカードの展開においてsudoが消えてしまうのが原因なのですが。
とりあえず対処法を。
sh -cでくくる
これが基本。
sudo sh -c 'ls -l /var/log/httpd/*0310'とか。
こうすればちゃんと読めます。
シェルスクリプト書く
for inで回してsudoして実行。
悪くはないかも。
手間はかかるけど。
一時的に権限付与する
まあこっちのほうが楽かも。
見終わったら権限戻すとか。
もちろんlsに限らずrmとかでも同様の現象になりますが、同様にsh -cでくくれば動きます。
とりあえず普通にワイルドカード叩いても動いてくれないので覚えておきましょう。