当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

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

这样我就可以将它们写入文本文件并稍后查看;和安全的资源(我经常打开很多标签)。 \n我知道 firefox 有一个 add-on,但我会更舒服地编写自己的脚本。

最佳思路

当前打开的 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 窗口、所有选项卡并获取相关信息,即 “entries” 内的最后一个条目。

如果我们可以使用 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(<STDIN>);
foreach my $w ( @{$json->{"windows"}} ) {
    foreach my $t ( @{$w->{"tabs"}} ) {
        print $t->{"entries"}[-1]->{"url"}."\n";
    }
}'

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/14357.html,未经允许,请勿转载。