这可能很简单,但我无法弄清楚,而且几乎无法搜索。在文件夹层次结构中,我只有一个 xyz 类型的文件。我想找到那个文件并用终端命令打开它。
find . -name *.xyz
Run Code Online (Sandbox Code Playgroud)
这将返回我正在寻找的文件。现在如何在不输入名称的情况下自动打开它?
find . -name *xyz | open
Run Code Online (Sandbox Code Playgroud)
这不起作用。它说它没有找到 open 命令。
您需要知道要使用什么程序来打开文件。如果是图像,您可以使用 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)
您正在寻找的命令被称为 xdg-open
用它试试你的命令:
xdg-open "$(find . -name '*xyz' | head -n1)"
Run Code Online (Sandbox Code Playgroud)