Могу ли я открыть текстовый файл в Preview из терминала?

12

Я знаю, что могу открыть файл с помощью внешней программы из Терминала open, и это работает для большинства приложений. Тем не менее, когда я пытаюсь использовать команду вроде open -a Preview info.txt, она запускает предварительный просмотр, но файл не открывается.

Я на Маверикс 10.10.2.

Есть ли способ использовать openкоманду (или любую другую встроенную команду) для фактического открытия файла в Preview из терминала?

Бен
источник
Предварительный просмотр не может открыть текстовые файлы, но команда open -a Preview photo.jpgработает для меня, он открывает изображение в предварительном просмотре.
Ly

Ответы:

12

Предварительный просмотр работает только с PDF-файлами и некоторыми файлами изображений (png, jpg, gif, tiff, bmp), поэтому вы не сможете открыть текстовый файл в Preview.

Чтобы открыть файл info.txt из терминала, вам нужно выбрать приложение, которое может открывать текстовые файлы, такие как TextEdit или любой другой текстовый редактор.

Вы также можете использовать open -e file, чтобы открыть любой файл с помощью TextEdit.

leandrojmp
источник
Если вы не хотите рисковать редактированием файла, попробуйте open -a Safari info.txt.
Lhf
1
Я не думаю, что вопрос был об открытии текстового файла. Есть еще вопрос, как открыть PDF-файл в Preview из терминала? , Вы не смогли ответить на этот вопрос.
Уолтер
1
Нет вопроса о том, «как открыть PDF-файл в режиме предварительного просмотра», поскольку пользователь заявил на своем примере, он уже знал, как открывать файлы в Preview из терминала, но не понимал, почему это не сработало при попытке откройте текстовый файл. Я только что ответил, объясняя, какие файлы вы можете открывать в Preview, и как открыть любой файл из терминала с помощью текстового редактора по умолчанию. Также другие пользователи ответили тем же, используя другой пример с файлом изображения. Но у вас есть точка зрения, я мог бы ответить лучше.
leandrojmp
5

NB. Если есть какие-либо дополнительные вопросы по этому ответу, пожалуйста, прокомментируйте.

ОБНОВИТЬ

В других ответах нет ничего плохого, в этом используется системная команда для преобразования текстового файла в совместимый тип файла для предварительного просмотра (например, PDF).

На основании примера файла вы можете запустить:

cupsfilter info.txt > info.pdf

(чтобы скрыть использование вывода отладки cupsfilter info.txt > info.pdf 2> /dev/null)

После чего можно применить исходный ответ, чтобы открыть новый info.pdfфайл в Preview. Вы можете узнать больше, запустив man cupsfilter. Я считаю, что это просто раскрывает базовую функциональность «Сохранить как PDF», которая существует в системе печати CUPS.

( Источник )

Дополнительно

Как отмечено в комментариях, можно просто направить команду, чтобы открыть файл непосредственно в 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 из текущей папки в Preview.

Томми С.
источник
1
Ницца! Я пытался, cupsfilterно мне не пришло в голову перенаправить stderr (дох!). С помощью перенаправления вы можете направить stdout напрямую в open( cupsfilter info.txt 2> /dev/null | open -f -a /Applications/Preview.app)
Джон Н
2

Существует, но вам нужно сначала конвертировать файл в postscript или PDF. Например, у меня есть функция, pmanкоторая работает точно так же, как обычные 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в Preview. Если вы делаете это много, вы, вероятно, захотите создать функцию (в вашей ~/.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
Джон Н
источник