将参数添加到最后一次调用“find ... -exec $COMMAND {} +”

将参数添加到最后一次调用“find ... -exec $COMMAND {} +”

我正在使用类似以下行的内容生成 ctags

find -iname '*.[hc]' -exec ctags -a --sort=no {} +

结果是标签没有排序。为此我正在使用

sort -u -o tags tags

我很好奇,这一切是否可以在 中完成find?换句话说,我可以指示find将其用于--sort=no所有最后一次调用 ctags,什么时候会使用--sort=yes

当前的方式已经足够了(无论如何ctags都会在内部调用sort -u -o $TAGFILE $TAGFILE),但我很好奇这是否可能。

答案1

我很确定find做不到。如果-exec {}您使用经典的 print-to- xargs (并且文件名不包含 shell 特殊字符,例如空格、美元符号或引号,或者您不厌其烦地保护它们),您可以识别并“更正”最后一个组=行:

find -iname pattern | xargs echo ctags -a --sort=no | sed '$s/sort=no/sort=yes/' | sh 

但正如您含蓄地问的那样,当您可以运行时为什么还要麻烦呢sort

相关内容