Мой друг получил некоторые зараженные вредоносными программами файлы PDF. Он выяснил, что, если он открывает их на Ubuntu и печатает их назад в файл, она удаляет вредоносное программное обеспечение.
Кто-либо знает, существует ли способ написать сценарий открытия, печати и закрытия каталога файлов PDF?
Это сделает задание:
Во-первых:
Установите принтер PDF, выполните следующее в терминале:
sudo apt install cups-pdf
Во-вторых:
В терминале, cd
в каталог, содержащий Ваши файлы PDF и выполненный следующая команда:
find . -maxdepth 1 -type f -name '*.pdf' -exec lpr -P PDF {} \;
Готово:
Печатные файлы расположены в Вашем корневом каталоге в соответствии с названным каталогом PDF
.
Важное замечание:
При установке принтера PDF в первом шаге выше (по умолчанию), это называют PDF как имя, которое определяет принтер в системе, и команда на втором шаге выше должна хорошо работать без ошибок.
Однако если это не так в Вашей системе или если необходимо было удалить и добавить принтер снова, название принтера могло бы измениться, и Вы получите ошибку как lpr: No such file or directory
. Для решения этого, необходимо найти новое название принтера PDF. Это - то, как сделать это:
Введите это в терминале и совершите нападки, войдите:
lpstat -s
Вы будете видеть вывод как это:
device for CUPS-PDF-Printer: cups-pdf:/
Вашим названием принтеров является теперь ПРИНТЕР PDF CUPS, и необходимо изменить команду на втором шаге соответственно, как так:
find . -maxdepth 1 -type f -name '*.pdf' -exec lpr -P CUPS-PDF-Printer {} \;
Объяснение - согласно просьбе user3140225:
{}
Содержит вывод find
команда.
Видеть его в действии:
Выполненный find . -maxdepth 1 -type f -exec echo {} \;
из каталога, который содержит некоторые файлы в нем.
Затем выполненный find . -maxdepth 1 -type f
из того же каталога.
Вывод является тем же.
\
Предотвращает точку с запятой ;
после него от того, чтобы быть интерпретируемым как пунктуация оболочки, которая преждевременно завершит команду.
;
Указывает на конец части аргумента для -exec
который необходим, чтобы это работало правильно.