bash, 获取文件句柄的 mime 类型

bash, getting the mime type of a file handle

如何在不将文件句柄保存到磁盘的情况下获取其 MIME 类型?

我的意思是一个没有保存到磁盘的文件,而是:我从存档中提取它并计划将它传输到另一个脚本。

假设我像这样提取文件:

tar -xOzf images.tar.gz images/logo.jpg | myscript

现在在 myscript 中,我想在进一步处理文件之前检查文件的 mime 类型。这将如何进行?

因为有些人认为我上面的评论很有帮助,所以我 post 将其作为答案。 file-命令能够确定正在传输的 fly/when 上的文件的 MIME 类型。它能够从标准输入 - 读取文件,并在传递 -b 时以简短的方式打印文件的 --mime-type briefly/in。考虑到您的示例,您可能希望从存档中提取单个文件并确定其 file/mime 类型。

$ tar -xOzf foo.tar.gz file_in_archive.txt | file -b --mime-type -
text/plain

因此,对于从存档中提取到标准输出的简单文本文件,它可能类似于上面的示例。希望有所帮助。问候