正規表現を使用してbashでファイル名を照合する方法は?つまり、tail -f /var/log/(syslog|mail.log)

正規表現を使用してbashでファイル名を照合する方法は?つまり、tail -f /var/log/(syslog|mail.log)

私は一生の間このようなコマンドを入力してきました。

tail -f /var/log/syslog /var/log/mail.log /var/log/mail.err

おそらく非常に基本的な質問かもしれませんが、答えを見つけるのに苦労しています。

毎回場所を再入力せずにフォルダ内の複数のファイルを一致させる正規表現方法はありますか?

これは数回のキーストロークを節約しましたが、それほど多くはありませんでした。

export LOGDIR=/var/log
tail -f $LOGDIR/syslog $LOGDIR/mail.log $LOGDIR/mail.err 

時にはいくつかの場所が欲しいときがあります...次のようなものを見つけたいと思います。

tail -f /var/log/(mail*|syslog|nginx/*)

(しかし実際にはその目的を達成します)

ベストアンサー1

支柱の拡張を使用してください。

tail -f /var/log/{mail*,syslog,nginx/*}

例:

$ tree
├── mail.err
├── mail.log
├── nginx
│   ├── a
│   ├── b
│   └── c
├── notthis
└── syslog
$ echo {mail*,syslog,nginx/*}
mail.err mail.log syslog nginx/a nginx/b nginx/c

おすすめ記事