📅  最后修改于: 2023-12-03 15:38:20.299000             🧑  作者: Mango
在 Linux 中,每个文件都有一个文件类型。文件类型可以告诉您文件的用途以及如何处理它。在本文中,将介绍如何在 Linux 中找出文件类型及其所属程序。
file
命令是一个非常有用的命令,它可以帮助您找出 Linux 系统上任何文件的类型。该命令用于打印出文件的类型及其所属程序。可以使用以下命令语法:
file [filename]
其中,filename
是要查找类型的文件名。
例如,要查找名为 example.txt
的文件类型,可以执行以下命令:
file example.txt
输出将类似于以下内容:
example.txt: ASCII text
在这个例子中,example.txt
的类型是 ASCII 文本。
请注意,如果filename
包含空格,请将其用引号括起来,以避免解释器将其视为多个参数。
file 命令有许多选项可用于获取更多信息。以下是一些常用选项的描述:
这个选项用于打印文件类型的简短说明,而不是完整的说明。例如:
$ file -b example.txt
ASCII text
这个选项用于打印文件类型的 MIME 类型。例如:
$ file -i example.txt
example.txt: text/plain; charset=us-ascii
这个选项用于解析符号链接,并打印源文件的类型,而不是链接文件的类型。例如:
$ 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
命令和其他命令来处理文件类型。通过熟悉这些技能,您可以更好地管理和处理文件。