gpt4 book ai didi

bash - 通过变量向 'find -exec' 传递命令不起作用

转载 作者:行者123 更新时间:2023-12-02 00:43:23 25 4
gpt4 key购买 nike

给定一个包含文件的目录 $HOME/foo/

命令:

找到 $HOME/foo -type f -exec md5deep -bre {}\;

工作正常并散列文件。

但是,为 -exec 创建变量似乎不起作用:

md5="md5deep -bre"

找到 $HOME/foo -type f -exec "$md5"{}\;

返回:find: md5deep -bre: No such file or directory

为什么?

最佳答案

由于您将变量括在双引号中,整个字符串将作为 -execfind 之后的单个标记发送到 find将其视为命令的名称。要解决此问题,只需删除变量周围的双引号:

find "$HOME/foo" -type f -exec $md5 {} \;

一般来说,把命令存放在shell变量中是不好的。参见 BashFAQ/050 .

关于bash - 通过变量向 'find -exec' 传递命令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45316499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com