特定の拡張子を除くフォルダ内のファイルを見つける方法

特定の拡張子を除くフォルダ内のファイルを見つける方法

さまざまな拡張子が混在するフォルダ(.sh .txt .pdb)があります。以下を除くすべてのファイルを検索したいと思います。pdbqt

次のコードを使用してフォルダ内のpdbqtを見つけることができることを知っています。

find -name "*.pdbqt" -type f

しかし、これと一致しないすべてのファイルを探したいです。一般的に言えば、!これが役に立ちます。ここにどこに置きますか!?それとも他のエレガントな解決策はありますか?

ベストアンサー1

テスト前に!無効にしたい項目は次のとおりです。

find ! -name "*.pdbqt" -type f

多くの実装では、find開始パス(POSIXの要件によると):

find . ! -name "*.pdbqt" -type f

否定は最も近い表現でのみ機能するため、-type fここでは否定は行われません。複数の式に否定を適用するには、括弧を使用してください(優先順位によって決定されます)。

おすすめ記事