Bashで複数の例外を提供しながらワイルドカードrmファイルをターゲットにする方法は?

Bashで複数の例外を提供しながらワイルドカードrmファイルをターゲットにする方法は?

次のファイルのリストがあります。

メイン.acn
メインプログラム.acr
メインプログラム.alg
メイン補助ファイル
メインプログラム.glg
メインプログラム.glo
メインプログラム.gls
基本
メインプログラム.lof
メインログ
マスターバッチ
メインプログラム.nlo
メイン出力
メイン.pdf
マスターファイル
メインディレクトリ

main.*以下を除くすべてのファイルをrmしたいと思います。マスターファイルそしてメイン.pdf文書。

試してみましたが、rm main.* !("main.tex","main.pdf")機能せずmain.* 例外なくすべて削除されました。

どんなアイデアがありますか?

ベストアンサー1

!("main.tex","main.pdf")以外のすべてのものと一致するため、main.tex,main.pdfディレクトリ内のすべてのファイルと一致できます。

注目すべき重要な点は、それ自体がそれらの1つではないものと一致するため、すでに同じ!(...)ように動作することです。*区切り記号はであり、|ではありません,

したがってmain.!(tex|pdf)、動作する必要があります。または、!(main.tex|main.pdf)名前で終わるファイルだけでなく、これら2つのファイルを除くすべてのファイルを削除したい場合main.

望むより:

おすすめ記事