
find -maxdepth 1 ! -name "*.*" -print
これは、XML文書であるINSSO.TEST.20100503.16400006のようなファイル名を識別しません。
答え1
ファイルの名前ではなく、その内容に基づいてファイルを検索する場合は、ファイルの中を調べる必要があります。 探す単独では実行されませんが、別のプログラムを実行するように指示することができます。
まず最初にファイル(1)はファイルの説明を出力します。XMLファイルで役立つ場合は、ファイル名を出力するスクリプトを作成します。探す正しいタイプであることがわかります。次に、すべての適切なファイルに対してそのスクリプトを呼び出します。
find . -type f -exec my-xml-detector {} \;
答え2
現在のディレクトリ内で拡張子がないファイル、拡張子が 3 文字を超えるファイル、または拡張子が空のファイルを検索する場合は、次のようにします。
find . ! -name . -prune ! -name '?*.[!.]' \
! -name '?*.[!.][!.]' \
! -name '?*.[!.][!.][!.]'
(ファイル名に有効な文字を形成しないバイトシーケンスが含まれていないことを前提としています)。