获取这几天看的pdf文件

获取这几天看的pdf文件

起因

由于pdf阅读器有时候会crash,有时候也是自己会不小心关掉,或者系统升级的什么原因,总之是会退出。但是退出后,不是将我以前看的文档都打开,而是打开几个最近看的文档。而且个数很少,好像只有4个还是几个。应该是应用程序的设定的问题。

导致我经常要找以前打开的文档,要找很久,有时候一篇pdf文档不是一直在看的。加上pdf比较多,就有点乱了。

所以需要按天整理下当天打开的pdf文件,弄个列表出来。

解决方法


ps aux | grep 'PDF' |awk '{print $2}' | head -1

ps aux | grep 'Skim' |awk '{print $2}' |head -1


lsof -p 1224 |grep .pdf|awk '{print substr($0,index($0,$9))}' >2021-09-15-reading-pdf.txt


#!/bin/bash

today=`date +%Y-%m-%d`

printf "PDF Experf opened files below:\n "

ppid=($(ps aux | grep 'PDF' |awk '{print $2}' | head -1))

lsof -p $ppid |grep .pdf |awk '{print substr($0,index($0,$9))}'

lsof -p $ppid |grep .pdf |awk '{print substr($0,index($0,$9))}' >$today-pdf-openfiles.txt



while ((i<100));do
  printf "-"
  ((i=i+1))
done

printf "\n"

printf "Skim opened pdf files below:\n"


ppid_skim=($(ps aux | grep 'Skim' |awk '{print $2}' | head -1))
lsof -p $ppid_skim | grep .pdf |awk '{print substr($0,index($0,$9))}'

lsof -p $ppid_skim | grep .pdf |awk '{print substr($0,index($0,$10))}'>>$today-pdf-openfiles.txt

cat $today-pdf-openfiles.txt|xargs echo | mail -v -s pdf-books-reading miaomiaomi@outlook.com

结果

就是将pdf阅读器目前打开的文件列出来,然后最后用mail发送邮件给我。

这个mail要在~/.mailrc里面做个配置。outlook有个好处就是接受来自非internet注册的smtp服务器的邮件,虽然大部分会放在垃圾箱,但是还是可以收到的。

至此,问题算是有个解决了。

| 访问量:
Table of Contents