【问题标题】:Script saving path of pdf files used by PreviewPreview使用的pdf文件的脚本保存路径
【发布时间】:2014-10-24 16:07:32
【问题描述】:

嗨,我想念 osx 重启后恢复会话的现代功能,所以我想编写一个 bash 脚本来保存在 Preview.app 中打开的 pdf 文件,并询问我是否要在 preview.app 中重新打开这些文件最后 2 个脚本执行系统已重新启动。


我从

开始

lsof | grep '^Preview*pdf$' >> listpreview.txt

但我无法确定合适的正则表达式来隔离路径,这是 lsof 返回的典型行

预览 4581 My_user txt REG 14,2 3254550 36522430 /arbitrary_path/filename_with_all_sort_of_character_and_spaces.pdf

  1. 还有比 lsof 更直接的方法吗?
  2. 如何保存 .txt 文件 (?) 以及 preview.app 中使用的 pdf 文件的路径列表?
  3. 如何在文件/文件夹名称中(不应该)转义各种符号,如 ß?

感谢您的回答。

【问题讨论】:

  • ` lsof | grep -i "^Preview.*pdf$" | awk '{print $NF}' >> listpreview.txt ` 试试这个

标签: regex macos bash shell lsof


【解决方案1】:
lsof | grep -i "^Preview.*\.pdf" | awk '{print $NF}' >> listpreview.txt

【讨论】:

  • 也许你也应该过滤 pdf 文件
  • ` lsof | grep -i "^Preview.*pdf$" | awk '{print $NF}' >> listpreview.txt`
  • 你回答了其中 3 个问题中的 2 个问题。我现在将为您解答第一个问题
  • ` ls -l /proc/7857/fd ` 其中 '7875' 是一个进程 ID,可以使用 ps 命令找到正确的 PID greping 可以帮助解决除 lsof 之外的 2
  • 一旦你有了 PID,你也可以使用pfile {pid} 命令来获取该进程打开的文件列表
猜你喜欢
  • 1970-01-01
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多