web-dev-qa-db-ja.com

ターミナルで開いているFirefoxタブの出力URL

ターミナルコマンドを使用して、現在開いているFirefoxタブのURLを確認したいと思います。可能性はありますか?

このようにして、テキストファイルに書き込み、後で見ることができます。安全なリソース(多くの場合、開いているタブが多数あります)。 firefoxのアドオンがあることは知っていますが、自分でスクリプトを作成する方が快適です。

17
aldorado

現在開いている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を使用すると、そのファイルを表示できます。また、sedegrep、およびcutを使用して、そのファイルから開いているFirefoxタブのURLのみを選択します。

8
Radu Rădeanu

その情報は$ 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";'

EDIT: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";
    }
}'
5
Hugo Vieira

Bashを使用すると、次の答えが見つかりました。パッケージjqのみが必要です。 apt-get install jqでインストールできます。

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

0
Andras Mitzki

これは、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"];'

説明:最初に、アクティブなタブのインデックス$tindexを見つけ、次にこのタブのアクティブな履歴エントリのインデックス$eindexを見つけます。

Firefoxは*default/sessionstore-backups/recovery.jsに15秒ごとにバックアップを作成します。

0
Lenar Hoyt