终端中打开的firefox选项卡的输出URL

我想用终端命令找出当前打开的firefox选项卡的URL。 有可能吗?

通过这种方式,我可以将它们写入文本文件并在以后查看它们。 和安全的资源(我经常有很多打开的标签)。 我知道有一个firefox的附加组件,但我会更自信地编写自己的脚本。

打开的Firefox选项卡的当前打开的URL存储在sessionstore.js文件中,该文件位于$HOME/.mozilla/firefox/XXXXXXXX.default目录中的某个位置。

所以,你可以从这样的事情开始:

 cat $HOME/.mozilla/firefox/*default/sessionstore.js | sed "s/{/\n/g" | egrep -o '"url".*"scroll"' | cut -d\" -f4 

使用cat我们可以显示该文件,并且在sedegrepcut的帮助下,我们只选择该文件中打开的Firefox选项卡的URL。

该信息存储在$ HOME / .mozilla / firefox / * default / sessionstore.js中,其格式为json。

以下示例适用于PHP。 它遍历所有firefox窗口,所有选项卡并获取相关信息,这是“条目”内的最后一个条目。 如果我们可以使用xpath来解析它,它将类似于:/ windows / * / tabs / last()/ url(我的xpath知识生锈)。

您可以将此代码复制/粘贴到终端:

 cat $HOME/.mozilla/firefox/*default/sessionstore.js | php -r ' $json=json_decode(fgets(STDIN), TRUE); foreach($json["windows"] as $w) foreach($w["tabs"] as $t) echo end($t["entries"])["url"]."\n";' 

编辑 :使用perl(但首先,sudo apt-get install libjson-pp-perl):

 cat $HOME/.mozilla/firefox/*default/sessionstore.js | perl -e ' use JSON qw( decode_json ); my $json = decode_json(); foreach my $w ( @{$json->{"windows"}} ) { foreach my $t ( @{$w->{"tabs"}} ) { print $t->{"entries"}[-1]->{"url"}."\n"; } }' 

这是您可以在Firefox中提取最前/活动选项卡的当前URL的方法:

 cat recovery.js | php -r '$json=json_decode(fgets(STDIN), TRUE); $tindex = $json["windows"][0]["selected"]-1; $eindex = $json["windows"][0]["tabs"][$tindex]["index"]-1; echo $json["windows"][0]["tabs"][$tindex]["entries"][$eindex]["url"];' 

说明:首先,它在此选项卡$eindex找到活动选项卡$tindex的索引,然后查找活动历史记录条目的索引。

Firefox每隔15秒在*default/sessionstore-backups/recovery.js创建一个备份。

使用bash我找到了以下答案。 它只需要包:jq。 它可以安装:apt-get install jq

jq '.windows[].tabs[].entries[].url' ~/.mozilla/firefox/xkxwaf4z.default/sessionstore-backups/recovery.js