这可能是一个简单的问题,但我无法弄清楚,而且几乎无法搜索。在文件夹层次结构中,我只有一个 xyz 类型的文件。我想找到该文件并使用终端命令打开它。
find . -name *.xyz
这将返回我正在寻找的文件。现在如何自动打开它,而无需输入名称?
find . -name *xyz | open
这是行不通的。它说它没有找到打开命令。
答案1
@retracile是正确的。您需要用“某物”打开它。不过,我更喜欢使用 exec 而不是 xargs。
find . -name '*.xyz' -exec cat {} \;
这将返回cat fileFound.xyz; cat fileFound2.xyx;
等等......但是,您只希望找到一个文件。
请注意,更改\;
为+
将根据情况返回,cat fileFound.xyz fileFound2.xyz
后者可能是首选。
有关这方面的更多信息,我会指导您这个问题
答案2
您需要知道要使用什么程序来打开该文件。如果它是图像,你可以使用 gwenview 或其他东西。
使用 xargs 可以获取输入并将其转换为参数。并且您需要转义该通配符...
find . -name \*xyz | xargs gwenview
并处理文件名中的空格......
find . -name \*xyz | xargs -d"\n" gwenview
答案3
您正在寻找的命令称为xdg-open
尝试使用它的命令:
xdg-open "$(find . -name '*xyz' | head -n1)"
答案4
find
如果你想在单个 vim 实例中打开单独选项卡中找到的所有文件,你可以这样做:
find . -name \*xyz | xargs vim -p