📜  如何在 Linux 中找出文件类型(1)

📅  最后修改于: 2023-12-03 15:38:20.299000             🧑  作者: Mango

如何在 Linux 中找出文件类型

在 Linux 中,每个文件都有一个文件类型。文件类型可以告诉您文件的用途以及如何处理它。在本文中,将介绍如何在 Linux 中找出文件类型及其所属程序。

使用 file 命令

file 命令是一个非常有用的命令,它可以帮助您找出 Linux 系统上任何文件的类型。该命令用于打印出文件的类型及其所属程序。可以使用以下命令语法:

file [filename]

其中,filename 是要查找类型的文件名。

例如,要查找名为 example.txt 的文件类型,可以执行以下命令:

file example.txt

输出将类似于以下内容:

example.txt: ASCII text

在这个例子中,example.txt 的类型是 ASCII 文本。

请注意,如果filename包含空格,请将其用引号括起来,以避免解释器将其视为多个参数。

使用命令行选项

file 命令有许多选项可用于获取更多信息。以下是一些常用选项的描述:

-b: 打印简短说明

这个选项用于打印文件类型的简短说明,而不是完整的说明。例如:

$ file -b example.txt
ASCII text
-i: 打印 MIME 类型

这个选项用于打印文件类型的 MIME 类型。例如:

$ file -i example.txt
example.txt: text/plain; charset=us-ascii
-L: 追踪符号链接

这个选项用于解析符号链接,并打印源文件的类型,而不是链接文件的类型。例如:

$ file -L /usr/bin/python
/usr/bin/python: ELF 64-bit LSB shared object, x86-64...
实用示例
查找文件夹中所有文件的类型

有时候,您可能需要查找文件夹中所有文件的类型。要做到这一点,可以使用 find 命令结合 file 命令。以下是一个示例命令:

find /path/to/directory -type f -exec file {} \;

这个命令将在 /path/to/directory 文件夹中查找所有文件的类型,并将结果输出到终端。

批量更改文件类型

有时候,您可能需要将许多文件类型更改为相同的类型。要做到这一点,可以编写一个小脚本来将 file 命令和其他命令结合使用。以下是一个示例脚本:

#!/bin/bash

FILES=/path/to/directory/*
NEWTYPE="text/plain"

for f in $FILES
do
  type=`file -b --mime-type "$f"`
  if [ "$type" != "$NEWTYPE" ]; then
    echo "Converting $f..."
    iconv -f $type -t $NEWTYPE "$f" > "$f.new"
    mv -f "$f.new" "$f"
  fi
done

此脚本将 /path/to/directory 文件夹中所有不是 text/plain 类型的文件转换为 text/plain 类型。

总结

本文介绍了如何在 Linux 中找出文件类型。以及如何使用 file 命令和其他命令来处理文件类型。通过熟悉这些技能,您可以更好地管理和处理文件。