web-dev-qa-db-ja.com

PDFスクリプトでファイルを開いて印刷し、閉じる

私の友人はいくつかのPDFマルウェアに感染したファイルを手に入れました。彼がUbuntuでそれらを開き、それらをファイルに出力するとマルウェアが削除されることがわかりました。

PDFファイルのディレクトリのオープン、印刷、クローズをスクリプト化する方法があるかどうか誰でも知っていますか?

3
Ole

これは仕事をします:

最初に:

PDFプリンターをインストールし、ターミナルで以下を実行します:

Sudo apt install cups-pdf

2番目:

ターミナルで、cdをPDFファイルを含むディレクトリに移動し、次のコマンドを実行します。

find . -maxdepth 1 -type f -name '*.pdf' -exec lpr -P PDF {} \;

完了:

印刷されたファイルは、ホームディレクトリのPDFというディレクトリの下にあります。


重要なお知らせ:

PDFプリンターを上記の最初のステップで(デフォルトで)インストールすると、[〜#〜] pdf [〜#〜]システム内のプリンターを識別する名前と、上記の2番目のステップのコマンドは、エラーなしで正常に機能するはずです。

ただし、それがシステムに当てはまらない場合や、プリンターを削除して追加し直す必要がある場合は、プリンターの名前が変更され、lpr: No such file or directoryのようなエラーが発生する可能性があります。これを解決するには、PDFプリンターの新しい名前を見つける必要があります。これを行う方法は次のとおりです。

  • これをターミナルに入力してEnterキーを押します。

    lpstat -s

  • 次のような出力が表示されます。

    device for CUPS-PDF-Printer: cups-pdf:/

  • プリンター名はCUPS-PDF-Printerになり、次のように2番目のステップでコマンドを変更する必要があります。

    find . -maxdepth 1 -type f -name '*.pdf' -exec lpr -P CUPS-PDF-Printer {} \;


説明- ser3140225の要求どおり

{} 

findコマンドの出力が含まれます。

実際の動作を確認するには:

  • いくつかのファイルを含むディレクトリ内からfind . -maxdepth 1 -type f -exec echo {} \;を実行してください。

  • 次に、同じディレクトリ内からfind . -maxdepth 1 -type fを実行します。

出力は同じです。

\

セミコロン;がシェルの句読点として解釈され、コマンドが途中で終了するのを防ぎます。

;

正しく機能するために必要な-execの引数部分の終わりを示します。

4
Raffa