一人で勉強していますが、突然明日の課題を提出しなければならないという考えがあって、このようなことを今しなければならない状況を想像してみてください。タブを閉じて、ジョブの新しい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を使用しています。