【发布时间】:2016-12-15 01:19:49
【问题描述】:
我有 10 个文件。我可以用find . -type f 列出它们,我想要实现的是在使用 find 命令找到它们后向所有 10 个文件发送一条消息。
我试过的,find . -type f -exec echo "This file found" >> {} \;
可能在逻辑上我是对的,但它不起作用。有什么方法可以只使用find 和echo 来实现吗?
谢谢
【问题讨论】:
我有 10 个文件。我可以用find . -type f 列出它们,我想要实现的是在使用 find 命令找到它们后向所有 10 个文件发送一条消息。
我试过的,find . -type f -exec echo "This file found" >> {} \;
可能在逻辑上我是对的,但它不起作用。有什么方法可以只使用find 和echo 来实现吗?
谢谢
【问题讨论】:
shell 重定向,>> 首先完成,在find 启动之前创建了一个名为{} 的文件,并且正在将字符串(其中的文件数)写入文件{}.
你需要:
find . -type f -exec bash -c 'echo "This file found" >>"$1"' _ {} \;
【讨论】:
_ 的目的。为什么不使用 $0 而不是 $1 没有字符 _?