我可以从终端在“预览”中打开文本文件吗?


12

我知道可以使用Terminal从外部程序打开文件open,并且该文件适用于大多数应用程序。但是,当我尝试使用类似命令时open -a Preview info.txt,它会启动Preview,但不会打开文件。

我在小牛10.10.2。

有没有一种方法可以使用该open命令(或任何其他内置命令)在终端的“预览”中实际打开文件?


预览无法打开文本文件,但是该命令open -a Preview photo.jpg对我有用,它将在预览中打开图像。
Lyes

Answers:


12

预览仅适用于PDF文件和某些图像文件(png,jpg,gif,tiff,bmp),因此您将无法在“预览”上打开文本文件。

要从终端打开info.txt文件,您需要选择一个可以打开文本文件的应用程序,例如TextEdit或任何其他文本编辑器。

您也可以使用open -e file,使用TextEdit打开任何文件。


如果您不想冒险编辑文件,请尝试open -a Safari info.txt
lhf 2015年

1
我认为问题不在于打开文本文件。仍然存在一个问题,如何从终端在“预览”中打开pdf文件?。您未能回答该问题。
Walter

1
正如用户在其示例中所述,“在预览中如何打开pdf文件”毫无疑问,他已经知道如何从终端上以“预览”打开文件,但不理解为什么在尝试打开pdf文件时不起作用打开一个txt文件。我刚刚回答了解释可以用Preview打开哪种文件,以及如何使用默认文本编辑器从终端打开任何文件。另外,其他用户使用带有图像文件的另一个示例回答了相同的问题。但是您有一个要点,我本可以用更好的方式回答。
leandrojmp

5

注意:如果对此答案还有其他疑问,请发表评论。

更新

其他答案没有任何问题,该答案利用系统命令将文本文件转换为预览的兼容文件类型(即PDF)。

给定一个示例文件,您可以运行:

cupsfilter info.txt > info.pdf

(以隐藏调试输出使用cupsfilter info.txt > info.pdf 2> /dev/null

之后,可以应用原始答案info.pdf在“预览”中打开新文件。您可以通过运行了解更多信息man cupsfilter。我相信这只是公开了CUPS打印系统中存在的基本“另存为PDF”功能。

来源

另外

如注释中所述,可以简单地通过管道将命令直接打开到Preview中。这为我工作:

cupsfilter info.txt 2> /dev/null | open -f -a Preview

(原始答案)

要从终端打开受支持的预览文件,例如pdf,png,jpg,gif,tiff和bmp:

open -a Preview <nameOfSupportedFileType>

因此,例如:

open -a Preview avatarMask@2x.png

在“预览”中打开当前文件夹中的png。


1
真好!我尝试过,cupsfilter但是我没有想到要重定向stderr(doh!)。通过重定向,您可以将标准输出直接通过管道传递给opencupsfilter info.txt 2> /dev/null | open -f -a /Applications/Preview.app
John N

2

有,但您需要先将文件转换为Postscript或PDF。例如,我有一个功能pman与Regular完全一样的功能man,但是man在Preview.app中打开了页面:

pman () 
{ 
    man -t $* | open -f -a /Applications/Preview.app
}

-t选项man表明需要将输出格式化(使用groff)作为后记。

您要在Preview.app中打开一个文本文件。对于“转换为PDF”阶段,我使用paps,我使用brew以下方法安装了该阶段:

brew install paps

之后,这很容易!

paps info.txt | open -f -a /Applications/Preview.app

它将info.txt在“预览”中打开。如果您经常这样做,则可能要创建一个函数(以您~/.bash_profile或类似的方式):

preview ()
{
    if [ -z "$*" ]; then
        echo "Usage: preview [FILE]"
    else
        paps $1 | open -f -a /Applications/Preview.app
    fi
}
complete -f -X '!*.txt' preview
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.