如何“仅使用‘find’命令运行‘dmesg’”?

如何“仅使用‘find’命令运行‘dmesg’”?

对于我的一项实验室作业,我需要“dmesg仅使用find命令运行”。

我一直在尝试寻找但找不到任何东西,可能是因为它不是它应该使用的方式。

答案1

find $(which find) -exec dmesg \;

这应该是一种解决方案。$(which find)可以替换为您确定存在的任何文件的路径。将为找到的每个文件find执行提供的命令(在我们的例子中,仅执行一次)。-exec

答案2

执行单个命令是find可以做的事情,但你永远不会用它来做。这有点像想出一台你能找到的无用机器YouTube 上的视频

使用标准find,您可以dmesg使用以下命令执行。

find . -prune -exec dmesg \;

在此find命令中,我们尝试对当前目录执行dmesgusing ,并使用 use来避免在当前目录中搜索任何内容。没有其他可探索的内容,就终止了。-exec-prunefind

该命令不依赖于我们提供的搜索路径,find除了它应该存在之外。它也不依赖于当前用户是否被允许执行dmesgdmesg在其$PATH.该命令将运行该dmesg实用程序,就像直接从命令行执行一样。

答案3

鉴于评论中所写的内容,我认为正确的答案是find / -name dmesg -type f -executable -exec {} \;

相关内容