Firefoxで開かれたすべてのURLをダンプする方法

Firefoxで開かれたすべてのURLをダンプする方法

一人で勉強していますが、突然明日の課題を提出しなければならないという考えがあって、このようなことを今しなければならない状況を想像してみてください。タブを閉じて、ジョブの新しいWebサイトを開きます。すべてのジョブが処理された後は、閉じていた前のタブが必要です。今、歴史を通してそれらを見つけるのに多くの時間を無駄にします。

現在Firefoxで開いているすべてのURLをダンプするスクリプトを実行したいと思います。このスクリプトでxargs同様の方法を使用して、以前のセッションを復元できます。ブックマークを追加すると、必要なときに見つからないため、解決策ではないようです。

私の考えではこれが役に立つと思います。

lsof -ai

しかし、それはうまくいきませんでした。 bashスクリプトでこの問題を解決できますか?それが不可能なら、私は試してみます。xdotool

答え1

テーマから抜け出し、ブックマークがそれほど悪くないことをお見せします。必要なのは、保存されたセッションの良い名前です。

タブを右クリックして選択できますBookmark All Tabs。これによりポップアップが表示され、すべてのタブを含めるフォルダの名前を指定できます。

セッションを復元することも非常に簡単です。ブックマークでセッションフォルダを見つけて右クリックして選択しますOpen All in Tabs

答え2

これワンタップ拡張それがまさにそれがすることです。 Chromium/Chromeでも動作します。

答え3

私はFirefox 69と提案された方法を使用しています https://support.mozilla.org/en-US/questions/1221836私のために動作します。

すぐに現在開いているタブのリストが <fx_profile>/sessionstore-backups/recovery.jsonlz4

バックアップを作成し、このオンラインツールを使用して開いたタブのリストをダンプします。https://www.jeffersonscher.com/ffu/scrounger.html

答え4

Arkadiuszの答えはとても良いですが、問題はファイルrecovery.jsonlz4に何をすべきかわからないデータが多すぎるということです。https://support.mozilla.org/en-US/questions/1221836何をすべきか良いヒントを与えます。

ファイル自体を特定の名前の場所にコピーし、必要に応じて復元するdmenuラッパーbashスクリプトを作成しました。recovery.jsonlz4

#!/bin/bash
SESSIONS="$HOME/.netsessions/"
PROFILE="$HOME/.mozilla/firefox/<use-your-profile>.default/"
[[ ! -d $PROFILE ]] && notify-send Firefox "Profile was not found" && exit 0
[[ ! -d $SESSIONS ]] && mkdir -p $SESSIONS
fireicon=/usr/share/icons/Paper/512x512/apps/firefox.png
subs=`ls "$SESSIONS"`
opt=$(echo -e "Create\nOpen\nDelete"| dmenu -fn "Droid Sans Mono-20" -i -p "firefox session:")

[[ "$opt" = "" ]] && exit 1
if [ "$opt" = "Create" ]; then
    (! pidof firefox > /dev/null ) && notify-send -t 1000 -i $fireicon Firefox "Firefox is not running" && exit 1
    opt1=$(echo "$subs"|dmenu -fn 'Droid Sans Mono-20' -i -p "Name it to create") 
    if [ -z "$opt1" ]; then
        exit 0
    fi
    cp $PROFILE/sessionstore-backups/recovery.jsonlz4 $SESSIONS/$opt1 > /dev/null && notify-send -t 1000 -i $fireicon Firefox "Session created" && exit 0
elif [ "$opt" = "Open" ]; then
    opt2=$(echo "$subs"|dmenu -fn 'Droid Sans Mono-20' -i -p "Name it to open") 
    if [ -z "$opt2" ]; then
        exit 0
    fi
    killall firefox >/dev/null 2>&1
    cp $SESSIONS/$opt2 $PROFILE/sessionstore.jsonlz4 > /dev/null
    setsid firefox >/dev/null 2>&1 &
elif [ "$opt" = "Delete" ]; then
    opt3=$(echo "$subs"|dmenu -fn 'Droid Sans Mono-15' -i -p "Name it to delete") 
    if [ -z "$opt3" ]; then
        exit 0
    fi
    rm "$SESSIONS"/"$opt3" > /dev/null && notify-send -t 1000 -i $fireicon group "Session deleted" && exit 0
elif [ -z "$opt" ]; then
    exit 0
fi

私はこのスクリプトを呼び出すためにキーバインディングを使用します。改善する点がある場合はお知らせください。
添付:私はFirefox 69を使用しています。

関連情報