Can I open a text file in Preview from the Terminal?
I know that I can open a file with an external program from the Terminal with open
, and that works for most applications. However, when I try to use a command like open -a Preview info.txt
, it launches Preview, but the file is not opened.
I am on Mavericks 10.10.2.
Is there a way to use the open
command (or any other built-in command) to actually open a file in Preview from the Terminal?
Solution 1:
Preview only works with PDF files and some image files (png, jpg, gif, tiff, bmp) so you won't be able to open a text file on Preview.
To open your info.txt file from terminal you need to choose an application that can open text files, like TextEdit or any other text editor.
You also could use open -e file
, to open any file using TextEdit.
Solution 2:
NB - If there are any further questions about this answer please comment.
UPDATE
There's nothing wrong with the other answers, this one leverages a system command to convert the text file to a compatible filetype for Preview (i.e. PDF).
Given a sample file you can run:
cupsfilter info.txt > info.pdf
(to hide the debug output use cupsfilter info.txt > info.pdf 2> /dev/null
)
After which one may apply the original answer to open the new info.pdf
file in Preview. You can learn more by running man cupsfilter
. I believe this just exposes the basic Save As PDF functionality that exists in the CUPS print system.
(Source)
Additionally
As noted in the comments one can simply pipe the command to open a file directly into Preview. This worked for me:
cupsfilter info.txt 2> /dev/null | open -f -a Preview
(Original Answer)
To open a supported Preview file from Terminal, such as pdf, png, jpg, gif, tiff, bmp:
open -a Preview <nameOfSupportedFileType>
So for example:
open -a Preview [email protected]
Opens the png from the current folder in Preview.
Solution 3:
There is, but you need to convert the file to postscript or PDF first. For example, I have a function pman
which works exactly like regular man
, but opens the man
page in Preview.app:
pman ()
{
man -t $* | open -f -a /Applications/Preview.app
}
The -t
option tells man
that the output needs to be formatted (using groff
) as postscript.
You want to open a text file in Preview.app. For the "convert to PDF" stage I use paps
, which I installed using brew
:
brew install paps
After that, it's easy!
paps info.txt | open -f -a /Applications/Preview.app
That'll open info.txt
in Preview. If you do this a lot, you'll probably want to create a function (in your ~/.bash_profile
or similar):
preview ()
{
if [ -z "$*" ]; then
echo "Usage: preview [FILE]"
else
paps $1 | open -f -a /Applications/Preview.app
fi
}
complete -f -X '!*.txt' preview