是否有命令行方法可以确定 Chromium 中的所有当前下载是否已完成?通过下载,我的意思是从 Youtube 下载视频。我不想仅仅依靠查看 Chromium 的“下载”选项卡来查看是否正在进行任何下载。是否有我可以运行的命令或我可以检查的文件以查看下载是否正在进行?
如果您知道正在下载的文件的路径(例如,如果您将它们全部放在一个目录中),那么您可以检查这些文件是否仍处于打开状态。
lsof ~/Downloads
Run Code Online (Sandbox Code Playgroud)
当 Chrome 完成编写它们时,您可以收到通知(假设Linux:
inotifywait -e close_write ~/Downloads
Run Code Online (Sandbox Code Playgroud)
如果您想列出所有待处理的下载(或已完成的下载),一个笨拙的方法是访问 Chrome 的数据库。由于 Chrome 保持数据库锁定,因此您无法直接访问它(至少不能使用命令行sqlite3
工具),您需要制作文件的副本,并且获得不一致视图的可能性很小,因此这并不完全可靠,但应该足以满足日常使用。
tmp=$(mktemp)
cp ~/.config/google-chrome/Default/Downloads "$tmp"
echo 'select target_path from downloads where end_time is null;' | sqlite3 "$tmp"
rm "$tmp"
Run Code Online (Sandbox Code Playgroud)
最好的方法可能是让 Chrome 在下载结束时通知您。扩展下载通知程序可以做到这一点,但它有副作用,并为您提供桌面通知,而不是您可以从命令行轻松使用的东西。代码的关键部分似乎是这样的:
chrome.downloads.onChanged.addListener(function(obj) {
if (obj.hasOwnProperty("state") && obj.state.current === "complete") {
chrome.downloads.search({id: did}, function(items) {
filename = items[0].filename;
…
}
}
});
Run Code Online (Sandbox Code Playgroud)
…
需要填写一种与外界通信的方法(可能在扩展程序目录中的某处创建一个文件),这超出了我的 Chrome 扩展程序编程知识。
归档时间: |
|
查看次数: |
1869 次 |
最近记录: |