使用“查找”命令打开文件

14 linux terminal pipe find

这可能很简单,但我无法弄清楚,而且几乎无法搜索。在文件夹层次结构中,我只有一个 xyz 类型的文件。我想找到那个文件并用终端命令打开它。

find . -name *.xyz
Run Code Online (Sandbox Code Playgroud)

这将返回我正在寻找的文件。现在如何在不输入名称的情况下自动打开它?

find . -name *xyz | open
Run Code Online (Sandbox Code Playgroud)

这不起作用。它说它没有找到 open 命令。

小智 14

@retracle 是正确的。你需要用“东西”打开它。但是,我更喜欢使用 exec 而不是 xargs。

find . -name '*.xyz' -exec cat {} \;

这将返回cat fileFound.xyz; cat fileFound2.xyx;等等。但是,您只希望找到一个文件。

请注意,更改\;+cat fileFound.xyz fileFound2.xyz根据情况返回,后者可能是首选。

有关这方面的更多信息,我会引导您回答这个问题


ret*_*ile 8

您需要知道要使用什么程序来打开文件。如果是图像,您可以使用 gwenview 或其他东西。

获取输入并将其转换为参数是使用 xargs 完成的。你会想要逃避那个通配符......

find . -name \*xyz | xargs gwenview
Run Code Online (Sandbox Code Playgroud)

并处理文件名中的空格....

find . -name \*xyz | xargs -d"\n" gwenview
Run Code Online (Sandbox Code Playgroud)


sta*_*tti 6

您正在寻找的命令被称为 xdg-open

用它试试你的命令:

xdg-open "$(find . -name '*xyz' | head -n1)"
Run Code Online (Sandbox Code Playgroud)