名前には拡張子はありませんが、属性には拡張子を持つファイルを識別する方法(例:実際にはテキスト文書nav.example.file)

名前には拡張子はありませんが、属性には拡張子を持つファイルを識別する方法(例:実際にはテキスト文書nav.example.file)

find -maxdepth 1 ! -name "*.*" -print

INSSO.TEST.20100503.16400006 などのファイル名が認識されません。 XML文書です。

答え1

(名前ではない)コンテンツに基づいてファイルを見つけるには、そのファイルを調べる必要があります。 探すこれはそれ自体では実行されませんが、他のプログラムを実行するように指示できます。

から始めます文書(1)、ファイルの説明を印刷します。 XMLファイルで動作する場合は、ファイル名を印刷するスクリプトを作成します。探すフィットタイプと言ってください。次に、次のコマンドを使用して、対応するすべてのファイルのスクリプトを呼び出します。

find . -type f -exec my-xml-detector {} \;

答え2

現在のディレクトリで拡張子がない、拡張子が3文字を超える、または空の拡張子を持つファイルを見つけるには、次のようにします。

find . ! -name . -prune ! -name '?*.[!.]' \
                        ! -name '?*.[!.][!.]' \
                        ! -name '?*.[!.][!.][!.]'

(ファイル名に有効な文字を形成しない一連のバイトが含まれていないと仮定)。

関連情報