find -exec 与多个命令


转自:https://www.it1352.com/2638813.html

问题描述

我试图将 find -exec 与多个命令一起使用,但没有成功.有人知道以下命令是否可行?

find *.txt -exec echo "$(tail -1 '{}'),$(ls '{}')" ;

基本上,我试图打印当前目录中每个 txt 文件的最后一行,并在行尾打印一个逗号,后跟文件名.

推荐答案

find 接受命令的多个 -exec 部分.例如:

find . -name "*.txt" -exec echo {} ; -exec grep banana {} ;

请注意,在这种情况下,只有在第一个命令成功返回时才会运行第二个命令,如@Caleb 所述.如果您希望两个命令无论成功或失败都运行,您可以使用以下结构:

find . -name "*.txt" ( -exec echo {} ; -o -exec true ; ) -exec grep banana {} ;

这篇关于find -exec 与多个命令的文章就介绍到这了

示例:查找Android out目录所有apk,并打印每个apk的签名信息

find . -name "*.apk" -exec ls {} \; -exec keytool -printcert -jarfile {} \; |tee apklog.txt   cat apklog.txt | grep -Ew 'apk|SHA256' |tee apk256.txt