![如何識別名稱中沒有擴展名但屬性中有擴展名的文件,例如:nav.example.file,它實際上是一個文本文檔](https://rvso.com/image/111986/%E5%A6%82%E4%BD%95%E8%AD%98%E5%88%A5%E5%90%8D%E7%A8%B1%E4%B8%AD%E6%B2%92%E6%9C%89%E6%93%B4%E5%B1%95%E5%90%8D%E4%BD%86%E5%B1%AC%E6%80%A7%E4%B8%AD%E6%9C%89%E6%93%B4%E5%B1%95%E5%90%8D%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%8C%E4%BE%8B%E5%A6%82%EF%BC%9Anav.example.file%EF%BC%8C%E5%AE%83%E5%AF%A6%E9%9A%9B%E4%B8%8A%E6%98%AF%E4%B8%80%E5%80%8B%E6%96%87%E6%9C%AC%E6%96%87%E6%AA%94.png)
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 '?*.[!.][!.][!.]'
(假設沒有檔案名稱包含不形成有效字元的位元組序列)。