Чи можу я відкрити текстовий файл у «Попередньому перегляді» з терміналу?


12

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

Я на Мавериці 10.10.2.

Чи можна за допомогою openкоманди (чи будь-якої іншої вбудованої команди) фактично відкрити файл у «Попередньому перегляді» з терміналу?


Попередній перегляд не може відкрити текстові файли, але команда open -a Preview photo.jpgпрацює для мене, вона відкриває зображення в Preview.
Лайз

Відповіді:


12

Попередній перегляд працює лише з файлами PDF та деякими файлами зображень (png, jpg, gif, tiff, bmp), тому ви не зможете відкрити текстовий файл під час попереднього перегляду.

Щоб відкрити ваш файл info.txt з терміналу, вам потрібно вибрати програму, яка може відкривати текстові файли, наприклад TextEdit або будь-який інший редактор тексту.

Ви також можете використовувати open -e fileдля відкриття будь-якого файлу за допомогою TextEdit.


Якщо ви не хочете ризикувати редагуванням файлу, спробуйте open -a Safari info.txt.
lhf

1
Я не думаю, що питання стосувалося відкриття текстового файлу. Виникає питання, як відкрити pdf-файл у Preview з терміналу? . Ви не змогли відповісти на це запитання.
Вальтер

1
Немає питання про те, "як відкрити pdf-файл у попередньому перегляді", оскільки користувач заявив на своєму прикладі, він уже знав, як відкрити файли в Preview з терміналу, але не зрозумів, чому це не працює при спробі відкрити файл txt. Я щойно відповів, пояснюючи, які файли можна відкрити за допомогою попереднього перегляду та як відкрити будь-який файл із терміналу за допомогою текстового редактора за замовчуванням. Також відповіли відповіді інші користувачі, використовуючи інший приклад із файлом зображення. Але ти маєш точку, я міг би відповісти кращим чином.
leandrojmp

5

Примітка. Якщо є додаткові запитання щодо цієї відповіді, будь ласка, прокоментуйте їх.

ОНОВЛЕННЯ

З іншими відповідями нічого поганого, цей використовує системну команду для перетворення текстового файлу у сумісний файл для попереднього перегляду (тобто 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)
Джон N

2

Є, але вам потрібно спочатку перетворити файл у постскрипт або 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в попередньому перегляді. Якщо ви цим займаєтесь багато, ви, ймовірно, захочете створити функцію (у своїй ~/.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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.