なぜ、sudo rm でワイルドカード指定できないのか
sudo rm でワイルドカード指定したのに動かない。
$ sudo rm /var/log/elasticsearch/elasticsearch.*.log rm: cannot remove `/var/log/elasticsearch/elasticsearch*log': No such file or directory
ワイルドカード拡張は、rmではなくシェルによって行われる。
また、シェルにはsudo権限はなく、rmのみにある。
したがって、シェルには/var/log/elasticsearch/を読み取る権限がないため
展開は行われず、rmはファイル(ワイルドカードではない)/var/log/elasticsearch/*(存在しない)を削除しようとする。
これを回避するには、rmを実行するsudo権限を持つシェルが必要となる。
sudo sh -c 'rm /var/log/elasticsearch/elasticsearch*.log'