ald*_*ado 17 command-line firefox tabs
我想通过终端命令找出当前打开的 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
Run Code Online (Sandbox Code Playgroud)
使用cat我们可以显示文件,并与帮助sed,egrep而cut我们只选择从该文件打开Firefox的标签的URL。
小智 5
该信息存储在$HOME/.mozilla/firefox/*default/sessionstore.jsjson中,其格式为 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";'
Run Code Online (Sandbox Code Playgroud)
或者,使用 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";
}
}'
Run Code Online (Sandbox Code Playgroud)