如何使用Bash中的file命令检查文件是否可执行?

沙漠煎饼

我有一项作业,要求我使用file命令检查文件是否为可执行文件类型。

作业中使用的措词如下:

应该使用file命令来一般性地确定参数是哪种文件,尤其是文件是否为可执行文件类型时。如果文件是可执行类型,则file命令的输出将包含特殊的“ executable”关键字。

在问题中进一步指出:

  1. 使用file并在输出中查找“ executable”关键字,以确定该文件是否为可执行文件类型。

到目前为止,我一直找不到任何说明该操作方法的文档。当我在CentOS8中的bash脚本上对此进行测试时,它将作为输出返回:

validate.sh: ASCII text

Edit1 / found_the_answer_edit:我尝试使用ti7的使用测试脚本的想法,它得到的输出与他们获得的输出相同。这让我开始思考。我的作业脚本需要对它们进行一些格式化。具体来说,为了获得我们脚本的信誉,我们必须具备:

#START SCRIPT
#username
``
at the beginning of the file and:

#END脚本

at the end of it. I deleted these bits in my validate.sh file and when I tested it again with the file command I got the same output that I got from the test script. So the answer is that there isn't anything special. File just can't deal with a file that doesn't start with "#!/bin/bash"
ti7

您的脚本validate.sh可能不是可执行文件file决定了它!这可能是因为标题错误

% cat test.sh
#!/bin/bash
echo "foo"
% file test.sh
test.sh: Bourne-Again shell script text executable, ASCII text

解决后,您可以检查executable响应中关键字,也许grep

% file test.sh | grep -q executable ; echo $?
0
% touch test-empty.sh
% file test-empty.sh | grep -q executable ; echo $?
1

如果您不被迫使用file-x按照这里的建议使用test的arg可能会更好,因为file不检查权限,而是文件格式是可执行的

请注意,测试命令命令实际上是[[[具有细微差别

[[ -x "validate.sh" ]] && echo "executable" || echo "not executable"

您可以使用来检查其权限,该权限ls列出目录中的文件以及它们的属性(可选)

ls -lhaF

你可以用你的脚本执行chmod(平凡,chmod +x

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查命令是否在PATH /可执行文件中

如何检查R中是否存在可执行命令

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

如何使用Rust中的按位操作检查文件是否可执行?

如何检查文件是否是Nim中的可执行文件?

如何检查其他文件是否可执行

如何检查其他文件是否可执行

使用Ubuntu上的PowerShell检查文件是否可执行

如何检查我的文件是否在回购中设置了可执行位权限

使用qmake检查可执行文件是否在PATH中

bash如何使文件可执行?

在bash中,检查文件大小是否正在更改,如果没有更改,请执行命令

如何确定git中的文件是否可执行?

如何使用bash重新哈希$ PATH中的可执行文件

检查给定随机单词的用户是否是可执行的linux命令?

如何检查当前可执行文件是否已经绑定了 Windows 服务

如何检查特定的可执行文件是否具有实时进程

在CMake中使其可执行之前,如何检查文件是否存在

如何检查可执行文件是否与已安装的.NET版本兼容

如何使用bash脚本在其他文件夹中运行可执行文件?

最终可执行文件是否使用符号表检查变量范围

以编程方式检查可执行文件是否存在,而无需运行它或使用“哪个”

如何使用按钮单击来确定是否已单击/选中检查按钮以运行可执行文件?(使用 tkinter)

Bash是否具有可执行文件缓存?

如何在github chmod = + x中制作上传的文件?然后使用wget命令下载文件,以保留github模式下的可执行文件集?

如何为这些命令创建可执行的bash脚本?

如何使用valgrind检查多个可执行文件而不用长时间盯着终端?

如何在Clojure中创建命令行可执行文件

在NixOS中,如何从命令行运行Haskell可执行文件?