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 '?*.[!.][!.][!.]'
(假设没有文件名包含不形成有效字符的字节序列)。