商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 如何在 Linux 中检查文件是否可执行

如何在 Linux 中检查文件是否可执行

  发布于2026-08-18 阅读(0)

扫一扫,手机访问

介绍

在这个实验中,你将学习如何使用多种方法来判断 Linux 系统中的文件是否可执行。首先,你会使用带有 CODE0 选项的 CODE1 命令来检查文件的可执行权限,并了解如何解读其退出状态。

接下来,你将探索如何使用 CODE0 命令查看文件的详细权限信息,并识别可执行标志。最后,你将学习如何使用 CODE1 命令检查文件的访问信息,这为确认文件是否可执行提供了另一种方法。

使用 test -x 测试可执行性

在这一步中,你将学习如何使用带有 CODE0 选项的 CODE1 命令来检查文件是否可执行。CODE2 命令是一个 shell 内置命令,用于计算条件表达式。CODE3 选项专门用于检查文件的可执行权限。

首先,让我们在你的 CODE0 目录下创建一个简单的文本文件。我们将使用 CODE1 命令把一些文本写入一个名为 CODE_2 的文件中。

echo "echo 'Hello from the script!'" > ~/project/my_script.sh

现在,让我们检查这个文件是否可执行。默认情况下,当你以这种方式创建一个新文件时,它不会有执行权限。

使用 CODE_0 命令,后面跟上文件的路径:

test -x ~/project/my_script.sh

运行此命令后,如果测试成功(即文件不可执行),你将看不到任何输出。如果文件是可执行的,CODE_0 会返回状态码 0,在 shell 脚本中,这通常被解释为“真”或“成功”,但默认情况下它不会在终端上打印任何内容。

为了查看 CODE0 命令的结果,我们可以使用 CODE1 来检查上一个命令的退出状态。退出状态为 CODE2 表示测试为真(文件可执行),非零状态(通常为 CODE3)表示测试为假(文件不可执行)。

echo $?

你应该会看到输出为 CODE0,这表明 CODE1 当前不可执行。

现在,让我们使用 CODE0 命令使文件可执行。CODE1 用于更改文件和目录的权限。我们将使用 CODE_2 为文件的所有者添加执行权限。

chmod +x ~/project/my_script.sh

现在,让我们再次测试文件的可执行性:

test -x ~/project/my_script.sh

然后检查退出状态:

echo $?

这次,输出应该是 CODE_0,这证实了文件现在是可执行的。

最后,让我们尝试运行这个脚本以查看输出:

~/project/my_script.sh

你应该会看到:

Hello from the script!

这证实了你已成功使文件可执行并运行了它。

使用 ls -l 检查权限

在这一步中,你将学习如何使用 CODE_0 命令查看文件的详细权限。该命令提供长列表格式,显示文件和目录的各种属性,包括权限、所有者、大小和修改时间。

如果你还不在 CODE0 目录,请导航到该目录。你可以使用 CODE1 命令:

cd ~/project

现在,使用 CODE_0 命令列出该目录中的文件:

ls -l

你应该会看到类似以下的输出(日期和时间等具体细节会有所不同):

-rwxr-xr-x 1 labex labex   30  

让我们来分析输出的第一部分,它代表文件的权限:CODE_0。这十个字符的字符串能让你了解谁对该文件有哪些操作权限。

第一个字符表示文件类型:

  • CODE0:普通文件(如我们的 CODE1
  • CODE_0:目录
  • CODE_0:符号链接

接下来的九个字符分为三组,每组三个,分别代表以下对象的权限:

  1. 所有者:拥有该文件的用户(在本例中为 CODE_0)。
  2. 所属组:拥有该文件的组(同样是 CODE_0)。
  3. 其他用户:系统中的其他所有人。

在每组三个字符中,权限表示如下:

  • CODE_0:读取权限(允许查看文件内容)
  • CODE_0:写入权限(允许修改或删除文件)
  • CODE_0:执行权限(允许将文件作为程序运行)
  • CODE_0:表示未授予该权限

因此,对于 CODE_0

  • 所有者(CODE0)拥有 CODE1 权限:读取、写入和执行。
  • 所属组(CODE0)拥有 CODE1 权限:读取和执行,但没有写入权限。
  • 其他用户拥有 CODE_0 权限:读取和执行,但没有写入权限。

此输出证实了在上一步使用 CODE0 后,所有者(CODE1)现在对 CODE2 拥有执行权限(CODE3)。

你还可以使用 CODE0 检查目录的权限。例如,让我们查看 CODE1 目录本身的权限:

ls -ld ~/project

CODE0 选项告诉 CODE1 列出目录本身,而不是其内容。输出可能如下所示:

drwxr-xr-x 2 labex labex 4096  

这里,第一个字符 CODE0 表示这是一个目录。权限 CODE1 意味着:

  • 所有者(CODE_0)对该目录拥有读取、写入和执行权限。对于目录,“执行”权限允许你进入该目录并访问其内容。
  • 所属组(CODE_0)和其他用户对该目录拥有读取和执行权限,但没有写入权限。

理解 CODE_0 的输出是在 Linux 中处理文件和权限的基础。

使用 stat 检查文件访问权限

在这一步中,你将使用 CODE0 命令来获取文件的详细信息,包括文件的访问时间、修改时间、更改时间,以及以比 CODE1 更结构化的格式显示的文件权限。

CODE_0 命令用于显示文件状态。当你进行脚本编写或需要精确的时间戳时,这个命令特别有用。

让我们对前几步中创建的 CODE0 文件使用 CODE1 命令。确保你位于 CODE_2 目录中,或者提供文件的完整路径。

stat ~/project/my_script.sh

你会看到类似以下的输出:

  File: /home/labex/project/my_script.sh
  Size: 30              Blocks: 8          IO Block: 4096   regular file
Device:      Inode:   Links: 1
Access: (/-rwxr-xr-x)  Uid: ( 5000/   labex)   Gid: ( 5000/   labex)
Access:  

让我们来看看输出中的一些关键行:

  • CODE_0:文件的名称和路径。
  • CODE_0:文件的大小(以字节为单位)。
  • CODE0:这一行同时以八进制格式(例如,CODE1 对应于 CODE2)和你在 CODE3 中看到的符号格式显示文件权限。它还显示了文件所有者和所属组的用户 ID(Uid)和组 ID(Gid)。
  • CODE_0:文件最后一次被访问(读取)的时间。
  • CODE_0:文件内容最后一次被修改的时间。
  • CODE_0:文件元数据(如权限、所有者等)最后一次被更改的时间。
  • CODE_0:文件的创建时间(并非所有文件系统都支持显示此信息)。

CODE0 相比,CODE1 命令能提供更详细的文件信息。当你需要查看时间戳或权限的数字表示时,它特别有用。

你也可以对目录使用 CODE_0 命令:

stat ~/project

输出会类似,但 CODE_0 类型会表明这是一个目录。

在你的 CODE0 目录中,对不同的文件和目录使用 CODE1 命令进行试验,观察输出的差异。

总结

在这次实验过程中,你学会了怎样运用CODE0命令来检测Linux系统里的文件是否具备可执行性。你构建了一个简易的脚本文件,利用CODE1命令并检查其退出状态(CODE2),从而确认该文件起初处于不可执行的状态(退出状态为1)。随后,你通过CODE3命令增添了执行权限,并且再次运用CODE4CODE5来验证这一更改,此时的退出状态变为了0。

你还探索了检查文件权限的其他方法。通过使用 CODE0 命令,你学会了解读权限字符串,特别是 'x' 字符,以此来识别可执行文件。最后,你使用 CODE1 命令查看文件的详细信息,包括访问权限,这为确认文件的可执行性提供了另一种方式。

本文转载于:https://labex.io/zh/tutorials/linux-how-to-check-if-a-file-is-executable-in-linux-558712 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注