Uso básico del comando de archivo en el sistema Linux

Insertar descripción de la imagen aquí

1. Introducción al comando de archivo

1.1 Introducción a Linux

Linux es un sistema operativo de código abierto y su núcleo es el kernel de Linux. El sistema operativo Linux fue lanzado originalmente en 1991 por Linus Torvalds de Finlandia. Se diferencia de sistemas operativos como Windows y Mac OS X en que es gratuito y puede modificarse y distribuirse libremente. La naturaleza de código abierto del sistema operativo Linux permite a los usuarios modificar, copiar y distribuir libremente el sistema operativo, y puede adaptarse a diversas necesidades. El sistema operativo Linux se utiliza ampliamente en servidores, supercomputadoras, dispositivos móviles y sistemas integrados, y cada vez más usuarios lo eligen como su sistema operativo diario.

1.2 Introducción al comando de archivo

El comando de archivo es un comando utilizado en Linux para detectar tipos de archivos y puede determinar su tipo en función de los datos binarios del archivo.

2. Ayuda sobre el uso del comando de archivo

2.1 Información de ayuda del comando de archivo

Utilice –help para consultar la información de ayuda del comando de archivo

[root@jeven ~]# file --help
Usage: file [OPTION...] [FILE...]
Determine type of FILEs.

      --help                 display this help and exit
  -v, --version              output version information and exit
  -m, --magic-file LIST      use LIST as a colon-separated list of magic
                               number files
  -z, --uncompress           try to look inside compressed files
  -b, --brief                do not prepend filenames to output lines
  -c, --checking-printout    print the parsed form of the magic file, use in
                               conjunction with -m to debug a new magic file
                               before installing it
  -e, --exclude TEST         exclude TEST from the list of test to be
                               performed for file. Valid tests are:
                               ascii, apptype, compress, elf, soft, tar, tokens, troff
  -f, --files-from FILE      read the filenames to be examined from FILE
  -F, --separator STRING     use string as separator instead of `:'
  -i, --mime                 output MIME type strings (--mime-type and
                               --mime-encoding)
      --apple                output the Apple CREATOR/TYPE
      --mime-type            output the MIME type
      --mime-encoding        output the MIME encoding
  -k, --keep-going           don't stop at the first match
  -l, --list                 list magic strength
  -L, --dereference          follow symlinks (default)
  -h, --no-dereference       don't follow symlinks
  -n, --no-buffer            do not buffer output
  -N, --no-pad               do not pad output
  -0, --print0               terminate filenames with ASCII NUL
  -p, --preserve-date        preserve access times on files
  -r, --raw                  don't translate unprintable chars to \ooo
  -s, --special-files        treat special (block/char devices) files as
                             ordinary ones
  -C, --compile              compile file specified by -m
  -d, --debug                print debugging messages

Report bugs to http://bugs.gw.com/

2.2 Explicación de la sintaxis del comando de archivo

  • sintaxis del comando de archivo
file(选项)(参数)
  • explicación de la opción de comando de archivo
-b:仅显示文件类型,不显示文件名;
-i:显示MIME类型;
-z:对压缩文件也进行检测。
-c:详细显示指令执行过程,便于排错或分析程序执行的情形;
-f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;
-L:直接显示符号链接所指向的文件类别;
-m<魔法数字文件>:指定魔法数字文件;
-v:显示版本信息;
-s: 查询(块/字符设备)文件信息
  • Explicación de los parámetros del comando de archivo.
文件:要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

2.3 manual de hombre para comando de archivo

Consultar el uso del comando de archivo en el manual de hombre.

man file

Insertar descripción de la imagen aquí

3. Introducción a los tipos de archivos

Los tipos de archivos comunes en Linux incluyen:

  • Archivo normal: se utiliza para almacenar texto, datos y otra información. La abreviatura es "-" (guion).

  • Archivo de directorio: se utiliza para almacenar información sobre otros archivos y directorios. Abreviado como "d".

  • Archivo de enlace simbólico: un acceso directo que apunta a otro archivo o directorio. Abreviado como "l".

  • Archivo de socket: un archivo utilizado para la comunicación entre procesos. Abreviado como "s".

  • Archivo de dispositivo de bloqueo: un archivo utilizado para acceder a dispositivos de almacenamiento (como discos duros, unidades flash USB, etc.). Abreviado como "b".

  • Archivo de dispositivo de caracteres: un archivo utilizado para acceder a los dispositivos del sistema (como teclado, mouse, etc.). Abreviado como "c".

  • Archivo FIFO: un archivo utilizado para la comunicación entre procesos. Abreviado como "p".

4. Uso básico del comando de archivo

4.1 Consultar versión del archivo

Utilice la opción -v para consultar la versión del archivo.

[root@jeven ~]# file -v
file-5.11
magic file from /etc/magic:/usr/share/misc/magic

4.2 Mostrar tipo de archivo

Por ejemplo, si necesitamos consultar el tipo de archivo de un archivo, podemos usar directamente el comando de archivo para consultar.

[root@jeven ~]# file test.txt
test.txt: ASCII text

4.3 No mostrar el nombre del archivo durante la salida

Al utilizar la opción -b, el nombre del archivo no se muestra al generar los resultados.

[root@jeven ~]# file -b test.txt
ASCII text

4.4 Mostrar categorías MIME

Utilice la opción -i para mostrar la categoría MIME de un archivo

[root@jeven ~]# file -i  test.txt
test.txt: text/plain; charset=us-ascii

4.5 Mostrar el tipo de archivo al que apunta el enlace

Ver información del directorio /var/mail

[root@server-01 ~]# ls -l /var/mail
lrwxrwxrwx. 1 root root 10 Jul 11  2019 /var/mail -> spool/mail

Consultar tipo de archivo /var/mail

[root@server-01 ~]# file /var/mail
/var/mail: symbolic link to `spool/mail'

Muestra el tipo de archivo al que apunta un enlace simbólico.

[root@server-01 ~]# file -L /var/mail
/var/mail: directory

4.6 Consulta por lotes

En el directorio actual, consulte por lotes los tipos de todos los archivos en el directorio actual.

[root@jeven tmp]# file *
clr-debug-pipe-8952-724-in:                                                   fifo (named pipe)
clr-debug-pipe-8952-724-out:                                                  fifo (named pipe)
clr-debug-pipe-8970-1925-in:                                                  fifo (named pipe)
clr-debug-pipe-8970-1925-out:                                                 fifo (named pipe)
dotnet-diagnostic-8952-724-socket:                                            socket
dotnet-diagnostic-8970-1925-socket:                                           socket
\passwd:                                                                       ASCII text
start-015d97ac.sh:                                                            ASCII text, with no line terminators
start-109f1a86.sh:                                                            ASCII text, with no line terminators
start-26c0fb80.sh:                                                            ASCII text, with no line terminators
start-4203b95e.sh:                                                            ASCII text, with no line terminators
start-92889412.sh:                                                            ASCII text, with no line terminators
start-ddceaaa1.sh:                                                            ASCII text, with no line terminators
systemd-private-08fc6e47aa874539ac4d70bc789f5282-bolt.service-mnASgU:         directory
systemd-private-08fc6e47aa874539ac4d70bc789f5282-colord.service-HplXU8:       directory
systemd-private-08fc6e47aa874539ac4d70bc789f5282-cups.service-xyIPUs:         directory
systemd-private-08fc6e47aa874539ac4d70bc789f5282-rtkit-daemon.service-bw5Sug: directory
systemd-private-b900215aacec4b86a1e8d464980a5c54-bolt.service-VNJiad:         directory
systemd-private-b900215aacec4b86a1e8d464980a5c54-colord.service-ZUXvYP:       directory
systemd-private-b900215aacec4b86a1e8d464980a5c54-cups.service-RlD3bV:         directory
systemd-private-b900215aacec4b86a1e8d464980a5c54-rtkit-daemon.service-zH4Tz7: directory
vmware-root_8951-3886978998:                                                  directory
vmware-root_8974-2832928238:                                                  directory
vmware-root_8984-2865826809:                                                  directory
vmware-root_8989-3852833186:                                                  directory
vmware-root_8994-2857503325:                                                  directory

4.6 Buscar un archivo y mostrar su tipo de archivo

Buscar un archivo y mostrar su tipo de archivo

[root@jeven boot]# find /etc/httpd   -type f -name "*.conf" -exec file {} \;
/etc/httpd/conf/httpd.conf: ASCII text
/etc/httpd/conf.d/autoindex.conf: ASCII text
/etc/httpd/conf.d/userdir.conf: ASCII text
/etc/httpd/conf.d/welcome.conf: ASCII text
/etc/httpd/conf.modules.d/00-base.conf: ASCII text
/etc/httpd/conf.modules.d/00-dav.conf: ASCII text
/etc/httpd/conf.modules.d/00-lua.conf: ASCII text
/etc/httpd/conf.modules.d/00-mpm.conf: ASCII text
/etc/httpd/conf.modules.d/00-proxy.conf: ASCII text
/etc/httpd/conf.modules.d/00-systemd.conf: ASCII text
/etc/httpd/conf.modules.d/01-cgi.conf: ASCII text

4.7 Ver información del archivo del dispositivo de bloque

Utilice la opción -s para ver información sobre los archivos del dispositivo de bloqueo

[root@server-01 ~]# file -s /dev/vda*
/dev/vda:  x86 boot sector; partition 1: ID=0x83, active, starthead 32, startsector 2048, 104854207 sectors, code offset 0x63
/dev/vda1: Linux rev 1.0 ext4 filesystem data, UUID=1114fe9e-2309-4580-b183-d778e6d97397 (needs journal recovery) (extents) (large files) (huge files)

5. Precauciones al utilizar el comando de archivo

  • Es posible que la determinación del tipo de archivo no sea precisa: aunque el comando de archivo puede determinar los tipos de archivos según algunos estándares, no todos los archivos se pueden determinar con precisión.
  • El nombre del archivo y la ruta no pueden contener espacios: si el nombre del archivo o la ruta contienen espacios, es posible que el comando de archivo no identifique correctamente el tipo de archivo.
  • Necesita usar permisos sudo: si desea usar el comando de archivo en algunos archivos del sistema, necesita usar permisos sudo.
  • Las diferentes plataformas del sistema deben procesarse de manera diferente: los diferentes sistemas operativos pueden juzgar los tipos de archivos de manera diferente, por lo que se debe realizar un procesamiento diferente en función de las diferentes plataformas del sistema.
  • Solo se pueden juzgar archivos locales: el comando de archivo solo puede juzgar archivos locales y no puede juzgar archivos remotos o archivos de red.

Supongo que te gusta

Origin blog.csdn.net/jks212454/article/details/134037147
Recomendado
Clasificación