使用find 命令执行命令 -exec

介绍 -exec 参数

如果-exec执行的过程中,执行的命令执行异常,后面的文件还会继续执行吗?

答案是

做一个简单的实验证明之:、
首先文件夹下内容

root@e2e1e45edb7a:~/test#  ls -l
总用量 104
-rw-r--r-- 1 root root    15 7月  27 02:25 o
-rwxr-xr-x 1 root root 97408 7月  27 02:25 ps
-rw-r--r-- 1 root root    11 7月  27 02:27 q

只有ps是可执行文件,其他两个都是普通文件。

我们用 readelf 命令测试,readelf 命令可以读取二进制文件。
但是遇到普通文件会提示错误

root@e2e1e45edb7a:~/test# readelf -s  o
readelf:错误: o:读入文件头失败

find 命令返回结果按照字母排序,所以ps可执行文件是第二个。

root@e2e1e45edb7a:~/test# find ./ -type f -exec readelf -h {} \;
readelf:错误: ./o:读入文件头失败
ELF 头:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  类别:                              ELF64
  数据:                              2 补码,小端序 (little endian)
  版本:                              1 (current)
  OS/ABI:                            UNIX - System V
  ABI 版本:                          0
  类型:                              EXEC (可执行文件)
  系统架构:                          Advanced Micro Devices X86-64
  版本:                              0x1
  入口点地址:               0x402f10
  程序头起点:          64 (bytes into file)
  Start of section headers:          95552 (bytes into file)
  标志:             0x0
  本头的大小:       64 (字节)
  程序头大小:       56 (字节)
  Number of program headers:         9
  节头大小:         64 (字节)
  节头数量:         29
  字符串表索引节头: 28
readelf:错误: ./q:读入文件头失败

发现可以顺利执行全部文件命令,不会因为 readelf -h o 出错就停止执行。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值