如何借助命令行打印文件的元数据?

如何借助命令行打印文件的元数据?

我在用特里克尔7.0 安装了 Nautilus 3.10.1。

每当我显示文件的属性时,我都会有一个特定于文件的选项卡,例如:图像、音频/视频、文档等,它显示有关该文件的特殊信息。

图像示例:

截屏

PDF 文档示例:

截屏

Nautilus 如何获取这种类型的文件特定信息?

如何使用 te 命令行打印此信息(元数据)

答案1

对于命令行中的第一级信息,您可以使用file.

$ file gtu.pdf 
gtu.pdf: PDF document, version 1.4

对于大多数格式和更详细的信息,您还可以使用 Exif工具:

NAME
       exiftool - Read and write meta information in files

SYNOPSIS
       exiftool [OPTIONS] [-TAG...] [--TAG...] FILE...
       exiftool [OPTIONS] -TAG[+-<]=[VALUE]... FILE...
       exiftool [OPTIONS] -tagsFromFile SRCFILE [-SRCTAG[>DSTTAG]...] FILE...
       exiftool [ -ver | -list[w|f|r|wf|g[NUM]|d|x] ]

       For specific examples, see the EXAMPLES sections below.

       This documentation is displayed if exiftool is run without an input FILE when one is expected.

DESCRIPTION
       A command-line interface to Image::ExifTool, used for reading and writing meta information in a variety of
       file types.  FILE is one or more source file names, directory names, or "-" for the standard input.
       Information is read from source files and printed in readable form to the console (or written to output text
       files with -w).

例子:

$ exiftool IMG_20151104_102543.jpg 
ExifTool Version Number         : 9.46
File Name                       : IMG_20151104_102543.jpg
Directory                       : .
File Size                       : 2.8 MB
File Modification Date/Time     : 2015:11:04 10:25:44+05:30
File Access Date/Time           : 2015:11:17 18:56:49+05:30
File Inode Change Date/Time     : 2015:11:11 14:55:43+05:30
File Permissions                : rwxrwxrwx
File Type                       : JPEG
MIME Type                       : image/jpeg
Exif Byte Order                 : Big-endian (Motorola, MM)
GPS Img Direction               : 0
GPS Date Stamp                  : 2015:11:04
GPS Img Direction Ref           : Magnetic North
GPS Time Stamp                  : 04:55:43
Camera Model Name               : Micromax A121
Aperture Value                  : 2.1
Interoperability Index          : R98 - DCF basic file (sRGB)
Interoperability Version        : 0100
Create Date                     : 2002:12:08 12:00:00
Shutter Speed Value             : 1/808
Color Space                     : sRGB
Date/Time Original              : 2015:11:04 10:25:44
Flashpix Version                : 0100
Exif Image Height               : 2400
Exif Version                    : 0220
Exif Image Width                : 3200
Focal Length                    : 3.5 mm
Flash                           : Auto, Did not fire
Exposure Time                   : 1/809
ISO                             : 100
Components Configuration        : Y, Cb, Cr, -
Y Cb Cr Positioning             : Centered
Y Resolution                    : 72
Resolution Unit                 : inches
X Resolution                    : 72
Make                            : Micromax
Compression                     : JPEG (old-style)
Thumbnail Offset                : 640
Thumbnail Length                : 12029
Image Width                     : 3200
Image Height                    : 2400
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Aperture                        : 2.1
GPS Date/Time                   : 2015:11:04 04:55:43Z
Image Size                      : 3200x2400
Shutter Speed                   : 1/809
Thumbnail Image                 : (Binary data 12029 bytes, use -b option to extract)
Focal Length                    : 3.5 mm
Light Value                     : 11.9

对于某些类型的文件还有特定的命令,例如pdf:

$ pdfinfo gtu.pdf 
Title:          Microsoft Word - Thermax Ltd
Author:         User
Creator:        PScript5.dll Version 5.2.2
Producer:       GPL Ghostscript 8.15
CreationDate:   Tue Jan 27 11:51:38 2015
ModDate:        Tue Jan 27 12:30:40 2015
Tagged:         no
Form:           none
Pages:          1
Encrypted:      no
Page size:      612 x 792 pts (letter)
Page rot:       0
File size:      64209 bytes
Optimized:      yes
PDF version:    1.4

答案2

通用“文件元数据”的实际含义将涉及任何信息未存储在文件本身里面,这是数据。它是关于数据的数据

在这样的含义下,元数据包括(但不限于):

  • 访问权
  • 大小(以字节和块为单位)
  • SELinux 安全上下文字符串
  • 所有者的用户和组 ID
  • 最后修改时间

此类信息通常存储在文件系统中,而不是存储在文件本身中。

现在,就 Linux(和类 Unix)CLI 而言,有一个名为的小而漂亮的工具,stat它可以提供文件、文件系统或任何其他文件系统相关项目(如目录、设备和命名管道)。

它使用printf类似于 - 的符号来定义要打印的实际信息,或者在不使用此类选项时使用默认选择。

这是一个运行示例:

[enzo@Feynman ~] stat /etc/hosts 
  File: /etc/hosts
  Size: 139             Blocks: 8          IO Block: 4096   regular file
Device: 10303h/66307d   Inode: 268684872   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-09-14 18:00:17.200000397 +0200
Modify: 2021-09-14 17:59:37.506668910 +0200
Change: 2021-09-14 17:59:37.520002245 +0200
 Birth: 2021-09-14 17:59:37.506668910 +0200

前面的答案显示了文件元数据和使用每种文件类型的特定工具提取的数据的混合,因此它并不严格涉及元数据。

另一方面,stat它更通用,适用于任何文件对象,并且不访问文件数据本身。

有关实际内容类型的额外详细信息,因此并不是真正的元数据从严格意义上讲,您可以利用无处不在的file使用大“签名“数据库(幻数数据库)来猜测文件内容,无论其名称是什么:它不使用所谓的文件扩展名。

相关内容