Linux find命令之-exec中\+和\;的区别

假设find会找到以下文件:

find .
file1
file2
file3

如果使用 -exec /;find . -exec ls {} \;),会执行以下命令

ls file1
ls file2
ls file3

ls file1; ls file2; ls file3;

而使用-exec \+find . -exec ls {} \+),会尽可能多的文件名作为参数传递给一个命令:

ls file1 file2 file3

注意:文件名的数量仅受系统最大命令行长度的限制。如果命令超过此长度,该命令将被多次调用。
\;为find找到的每个文件执行单独的命令。
\+附加文件,并在所有文件上执行单个命令。
\是一个转义字符。

使用\的原因:
因为;是分隔shell命令的控制符(或&&、||)之一,例如:

command1;command2

find程序使用;+来终止由 -exec调用的 shell 命令。
因此,为了避免特殊的shell字符被解释,需要用反斜杠进行转义,以消除;的特殊含义

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值