如何識別名稱中沒有擴展名但屬性中有擴展名的文件,例如: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 '?*.[!.][!.][!.]'

(假設沒有檔案名稱包含不形成有效字元的位元組序列)。

相關內容