挂载一个ISO到mnt下问题请教

回复 收藏

原命令:mount -o loop oraclelinux-R6-U8-Server.iso /mnt

现需求:写入shell脚本内

oraclelinux-R6-U8-Server.iso在tmp下   我需要find /tmp -name *.iso

单独使用管道符的话 find /tmp -name *.iso | xargs mount -o loop (这里/mnt要写在哪里呢。。。尴尬)

请教各位大神。。。。

2018-11-14 12:30 举报
已邀请:
0

xie525767270

赞同来自:

有人嘛

0

彭海恒

赞同来自:

find /tmp -name ".iso" -exec mount -o loop {} /mnt \;

 或者

find /tmp -name ".iso" -print0 | xargs -I {} mount -o loop {} /mnt


不过你这么挂载肯定是不行的, 同一个节点下,不能挂载多个文件啊. 感觉会出异常.你得判断是否只且只有这一个文件. 

-exec 跟 xargs 都可以的. 注意exec需要"\;" 斜杠+分号结尾.

解释:

    -exec 是find中的一个参数所以 "-"exec, 并且搜索到的文件已 {} 为界定, 并且以";"表示exec执行的命令结束, 由于分号在linux中有特殊含义, 所以"\"进行转义->所以结尾处必须为"\;".

    如果你需要添加额外的命令,再继续指定即可.例如:(搜索home目录下,所有.sh结尾的文件, 并且ls -l 展示. find执行结束后再 执行echo 123 命令.

find /home -name "*.sh" -exec ls {} -l \;; echo 123

    xargs 是linux的一个命令, 所以会加"|" 管道符, xargs的界定符需要人为指定, "-I"(大写i)是xargs程序的参数. 所以不需要加"\;"作为命令界定.

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: