检查文件(作为脚本的参数传递)是否为.iso类型

尼库拉·霍拉蒂(Necula Horatiu)

我正在研究带有2个参数的脚本。第一个是iso文件的路径,第二个是iso名称。如何检查文件是否为.iso类型而不是其他类型的文件?

卡兹·沃尔夫(Kaz Wolfe)

您需要以下file命令:

% file ubuntu-16.04.2-desktop-amd64.iso 
ubuntu-16.04.2-desktop-amd64.iso: DOS/MBR boot sector ISO 9660 CD-ROM filesystem data (DOS/MBR boot sector) 'Ubuntu 16.04.2 LTS amd64' (bootable); partition 2 : ID=0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsector 14432, 4864 sectors

看一下--mime-typeand和--brief-b)标志:

% file -b --mime-type ubuntu-16.04.2-desktop-amd64.iso
application/x-iso9660-image

然后,您可以使用grep或类似方法来解析file命令的输出,然后读取状态代码:

% file -b --mime-type ubuntu-16.04.2-desktop-amd64.iso | grep -q iso; echo $?
0
% file -b --mime-type wolf1.png | grep -q iso; echo $?
1

如果要在脚本中使用此$1文件传入的文件在哪里,请注意缺少方括号):

#!/bin/bash

if file -b --mime-type $1 | grep -q iso; then
    echo "Is ISO"
else
    echo "Is not ISO"
fi

例子:

% ./x.sh ubuntu-16.04.2-desktop-amd64.iso
Is ISO
% ./x.sh wolf1.png 
Is not ISO

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查传递的参数是否为类的类型

参数类型 ISO 日期格式?

Kubuntu 18.04中ISO文件的Mime类型

Swift - 检查对象是否属于给定类型(该类型已作为函数参数传递)

Typescript 类型,用于检查给定键是否作为对象的键传递给解析为数组

检查类型参数是否为特定接口

如何使用“ as”检查对象是否为参数传递的类型?

c#使用lambda检查对象是否为某种动态类型(通过参数传递)

检查参数化类型是否为特定类型实例

通过参数传递的检查值类型为空

将类型作为参数传递

传递对象类型作为参数

传递属性类型作为参数

检查参数是否为两种类型的实例

检查模板参数是否为chrono :: duration类型

检查文件类型是否为媒体文件?

检查传递给bash脚本的参数是否为某个扩展名的文件

将函数作为参数类型脚本传递时,避免两次定义参数

检查函数的参数是否为类型参数中正确类型的键

打包程序:使用 ova 作为源构建类型 vmware-iso

检查类型是否为地图

检查类型是否为列表

检查类型是否为接口

检查是否在可变参数模板参数包中传递类型

函数模板专门化-错误-ISO C ++禁止声明无类型的“参数”

尝试挂载ISO文件困难“挂载:您必须指定文件系统类型”

在 Autofac/c# 中的方法中作为参数传递时解析类型(请检查示例代码)

将Java函数作为参数传递并进行类型检查响应

从目录创建ISO,但是只有一种文件类型