Process
檢索所有打開的 pdf 文件的名稱(以 evince 或其他方式)
我經常打開許多 PDF 文件。這些通常使用 chrome 下載並立即使用 evince 打開。
有時我想保留所有打開的 PDF 文件的狀態,以便稍後重新打開同一組文件。
這主要發生在我需要重新啟動以及重新打開同一組文件時,但有時我只想保留打開的文件列表以供以後使用。
有沒有辦法從 evince 或任何其他程序獲取所有打開的 pdf 文件的名稱?或者至少,有沒有辦法讓 evince 在重新啟動後重新打開同一組文件?
假設您正在查看的 PDF 具有副檔名 .pdf,以下可能會為您提供打開的 PDF 列表:
$ lsof | grep ".pdf$"
如果您只使用過 Evince,請參閱 Gilles 的類似答案。在我的機器上(打開了幾個 pdf)顯示輸出如下
evince 6267 myuser 14u REG 252,0 363755 7077955 /tmp/SM.pdf
要獲取文件名,我們可以使用
awk
:$ lsof | grep ".pdf$" | awk '{print $9}'
甚至更好,
$ lsof | awk '/.pdf$/ {print $9}'
我們可以將這些結果保存在一個文件中:
$ lsof | awk '/.pdf$/ {print $9}' > openpdfs
後來,要恢復它們:
$ xargs -a openpdfs evince
為了自動實現這一點,您可以使用桌面環境提供的任何機制在退出時執行“保存”命令,在登錄時執行“打開”命令。通過確保
lsof
您的使用者正在打開返回的 pdf,可以增加一點穩健性。這種方法的一個優點是它應該適用於任何採用命令行參數的 pdf 查看器。一個缺點是它依賴於文件名。但是,稍微戳一下,知道文件副檔名的要求也可能被刪除。