我有10个文件。我可以使用find . -type f列出它们,我想要做的是在找到这些文件后向它们发送一条消息。 我尝试过使用find . -type f -exec echo "This file found" >> {} \;,但似乎并没有起作用。请问是否有仅使用find和echo的方法可以实现我想要的功能呢? 谢谢!
在执行find命令之前,首先进行的是shell重定向操作>>,创建一个名为{}的文件,并将字符串(其中包含文件数量)写入文件{}。 你需要:find . -type f -exec bash -c 'echo "This file found" >>"$1"' _ {} \;
_
的目的。为什么不直接使用$0
而不带有_
这个字符呢? - olivbash -c "..."
的第一个参数是用于$0
的值,而不是第一个位置参数。你可以使用bash -c "echo "This file found" >> "$0"' {}
,但这可能滥用了$0
参数。(我不知道如果你这样做会出现什么问题,不过。) - chepner