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


12

这可能很容易,但是我无法弄清楚,而且几乎不可搜索。在文件夹层次结构中,我只有一个类型为xyz的文件。我想找到该文件并使用终端命令将其打开。

find . -name *.xyz

这将返回我要查找的文件。现在如何不输入名称就自动打开它?

find . -name *xyz | open

这行不通。它说没有找到打开命令。


3
这是什么文件?如果它不是可执行文件,那么您要使用哪个程序打开文件?噢Windows对我们的人口做了什么= /
chown

这可能属于超级用户……
retracile

1
我使用的是Mac,而不是Windows ...,我想使用默认程序打开文件。

2
找 。名称* xyz | xargs打开并找到。-name * .xyz -exec open {} \; 两者都起作用。谢谢。

很高兴您找到了解决方案。不要忘记标记最适合您的解决方案。其他人会看到您的“接受”比率,这在询问将来的问题时会走很长一段路。接受率较低的用户通常会发现自己的问题被忽略了。=)
火柴

Answers:


10

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

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

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

请注意,根据情况的不同,更改\;+将会返回cat fileFound.xyz fileFound2.xyz较晚的选择。

有关此的更多信息,我将指导您解决这个问题


6

您要查找的命令称为 xdg-open

尝试使用它的命令:

xdg-open "$(find . -name '*xyz' | head -n1)"

6

您需要知道要使用什么程序打开文件。如果是图像,则可以使用gwenview之类的东西。

使用xargs完成输入并将其转换为参数。而且您想逃脱通配符...

find . -name \*xyz | xargs gwenview

并处理文件名中的空格。

find . -name \*xyz | xargs -d"\n" gwenview

2

正如其他人指出的那样,您的问题不够具体,无法清晰回答。因此,猜测另一种可能的含义:如果您想将其作为可执行文件运行(意味着您的程序是可执行文件),请告诉Shell您要替换find命令的输出作为命令行的一部分。 :

$(find . -name *.xyz)

0

如果要find在单个vim实例中打开在单独的选项卡中找到的所有文件,可以执行以下操作:

find . -name \*xyz | xargs vim -p
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.