File-Command

libmagic(文件)數據庫“使用”和“清除”類型

  • December 12, 2015

我目前正在為 libmagic 數據庫(由 file 命令使用)編寫解析器,但我沒有找到有關“使用”和“清除”類型(魔術文件中的第二列)的任何資訊。

有人可以向我解釋這種類型應該做什麼嗎?

這些是相當新的功能,記錄在magic(5)

use

從目前偏移量開始遞歸呼叫命名魔法。如果引用的名稱以 a 開頭, ^那麼魔法的字節序會被切換;例如,如果提到魔術leshort,則將其視為 beshort ,反之亦然。這對於避免重複不同字節序的規則很有用。

clear

此測試始終為真,並清除該延續級別的匹配標誌。它旨在與預設測試一起使用。

通過“相當新”:

2014-11-27 18:40 克里斯托斯佐拉斯

   * Allow setting more parameters from the command line.
   * Split name/use and indirect magic recursion limits.

2013-04-22 11:20 克里斯托斯祖拉斯

   * The way "default" was implemented was not very useful
     because the "if something was printed at that level"
     was not easily controlled by the user, and the format
     was bound to a string which is too restrictive. Add
     a "clear" for that level keyword and make "default"
     void. This way one can do:            

           >>13    clear   x
           >>13    lelong  1       foo
           >>13    lelong  2       bar
           >>13    default x
           >>>13   lelong  x       unknown %x 

引用自:https://unix.stackexchange.com/questions/248960