如何测试一个文件是否是字体文件

如何测试一个文件是否是字体文件

我有数千个自动保存的网页,来自不同的来源。许多网页都在 *.woff、*.eot、*.ttf 和 *.svg 等文件中嵌入了字体。我想减小它们的大小,删除所有字体文件。如何测试文件是否适用于字体?很明显我可以找到一些find . -type f -name *woff.特别是,*svg 文件可能会造成混淆。 *svg 文件可以是像 xxxwebfontsxxx.svg 这样的字体文件,也可以是信息丰富的图像。

如果无法直接测试文件,我应该删除哪些扩展名?我知道的扩展名字体文件是 *otf、*ttf、*eot、*woff 和一些 *svg 可以是字体,也可以不是。删除这前四类文件是否保存?

答案1

有一个名为 的命令file可以(很好但并不总是完美)猜测文件类型。使用该命令的一种方法是:

find your_web_pages_directory -type f -name "*.*" -print0 |
  xargs -0 file |
    awk 'BEGIN{FS=": +"}$2~/[Ff]ont/{print $1}' |
      xargs rm --

find命令查找带有扩展名的普通文件(如果您愿意,可以进一步限制该扩展名),程序awk与前面猜测的猜测相匹配file并打印文件名,最后结果被删除。根据“your_web_pages_directory”中的文件,建议find | xargs在添加管道的awk和部分之前首先检查管道的输出。rm

注意:该代码假设file将报告所需文件的“字体”或“字体”之类的内容。如果这不是实际的诊断字符串,您必须相应地更改它。对您知道属于您正在搜索的类型的文件进行一些测试。

相关内容