很少有文件包含有关您的会话的信息:
~/.mozilla/firefox/*.default/sessionstore-backups/recovery.js其中包含有关当前会话的信息,还包含关闭的选项卡和上一个会话的信息。Firefox 每 15 秒在此文件中创建一个备份。当 Firefox 关闭时,此文件不可用。
~/.mozilla/firefox/*.default/sessionstore.js当 Firefox 浏览器关闭时,其中包含有关上次会话的信息。当 Firefox 打开时,此文件不可用。
~/.mozilla/firefox/*.default/sessionstore-backups/previous.js 其中包含有关上一个会话的信息。
的内容分析recovery.js表明,对于每个选项卡,只有当前 URL 的条目包含 string attributes。
1.A. 如果你想从当前会话中获取所有打开标签的 URL,你可以使用这个命令:
cat $HOME/.mozilla/firefox/*.default/sessionstore-backups/recovery.js | \
sed "s/\\_closedTabs.*//" | \
sed "s/{/\n{/g" | \
egrep -o 'url.*attributes' | \
cut -d\" -f3
Run Code Online (Sandbox Code Playgroud)
* 请注意,您必须copy/paste所有行一起进入终端窗口并按Enter。
在哪里:
cat $HOME/.mozilla/firefox/*.default/sessionstore-backups/recovery.js 将打印此文件的内容;sed "s/\\_closedTabs.*//"将删除字符串之后的所有内容_closedTabs;sed "s/{/\n{/g" | \将在每个之前放置一个换行符{;egrep -o 'url.*attributes'将仅过滤以 开头url和结尾的行中的那些部分attributes。如果没有-o选项,包含字符串的整行将被过滤;cut -d\" -f3将"用作分隔符并仅过滤第 3 列。在我的情况下,命令的输出是:
https://askubuntu.com/
https://www.mozilla.org/en-US/
Run Code Online (Sandbox Code Playgroud)
1.B. 如果您想一次获取当前会话和上一个会话的数据,您可以使用以下命令:
printf "\n# CurrentSession:\n"; \
cat $HOME/.mozilla/firefox/*.default/sessionstore-backups/recovery.js | \
sed "s/\\_closedTabs/\{\"url\":\"# ClosedTabs:\"attributes/g" | \
sed "s/\\lastSessionState/\{\"url\":\"# LastSession:\"attributes/" | \
sed "s/{/\n{/g" | \
egrep -o 'url":"*.*attributes*' | \
cut -d\" -f3 | \
sed "s/#/\n#/" \
; echo
Run Code Online (Sandbox Code Playgroud)
在哪里:
printf "\n# CurrentSession:\n";将# CurrentSession:在两个换行符之间打印;sed "s/\\_closedTabs/\{\"url\":\"# ClosedTabs:\"attributes/g"将替换字符串_closedTabs与"url":"# ClosedTabs:"attributes整个“文件”(选件g);sed "s/\\lastSessionState/\{\"url\":\"# LastSession:\"attributes/"将替换lastSessionState为"url":"# LastSession:"attributes;sed "s/#/\n#/"将在每个#.; echo 将在底部添加一个空行。在我的情况下,命令的输出是:
# CurrentSession:
https://askubuntu.com/
https://www.mozilla.org/en-US/
# ClosedTabs:
https://www.yahoo.com/
# LastSession:
https://askubuntu.com/
https://www.abv.bg/
# ClosedTabs:
https://www.google.com/gmail/about/
https://www.yahoo.com/
Run Code Online (Sandbox Code Playgroud)
2.A. 如果你想获得历史,你可以使用:
cat $HOME/.mozilla/firefox/*.default/sessionstore-backups/recovery.js | sed "s/\\_closedTabs.*//" | sed "s/{/\n{/g" | egrep 'url":"http*' | cut -d\" -f4
Run Code Online (Sandbox Code Playgroud)
在我的情况下,命令的输出是:
https://askubuntu.com/
https://www.google.bg/search?client=ubuntu&channel=fs&q=firefox&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=pTKyWIitGqTs8wewj4KgDQ
https://www.mozilla.org/bg/firefox/new/
https://www.mozilla.org/en-US/
Run Code Online (Sandbox Code Playgroud)
2.B. 您可以在每个选项卡的数据之间放置一个分隔符:
cat $HOME/.mozilla/firefox/*.default/sessionstore-backups/recovery.js | \
sed "s/\\_closedTabs.*//" | \
sed "s/{/\n{/g" | \
sed "s/entries/url\":\"# TAB:/g" | \
egrep 'url":"*' | \
cut -d\" -f4 | \
sed "s/#/\n#/"
Run Code Online (Sandbox Code Playgroud)
在我的情况下,命令的输出是:
# TAB:
about:startpage
https://askubuntu.com/
# TAB:
https://www.google.bg/search?client=ubuntu&channel=fs&q=firefox&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=pTKyWIitGqTs8wewj4KgDQ
https://www.mozilla.org/bg/firefox/new/
https://www.mozilla.org/en-US/
Run Code Online (Sandbox Code Playgroud)
3. 1.B. 和 2.B. 一起:
printf "\n# CurrentSession:\n"; \
cat $HOME/.mozilla/firefox/*.default/sessionstore-backups/recovery.js | \
sed "s/\\_closedTabs/\{\"url\":\"# ClosedTabs:/g" | \
sed "s/\\lastSessionState/\{\"url\":\"# LastSession:/" | \
sed "s/entries/url\":\"# TAB:/g" | \
sed "s/{/\n{/g" | \
egrep 'url":"*' | \
cut -d\" -f4 | \
sed "s/#/\n#/" \
; echo
Run Code Online (Sandbox Code Playgroud)
在我的情况下,命令的输出是:
# CurrentSession:
# TAB:
https://host.bg/
https://admin.host.bg/
# TAB:
https://www.mediawiki.org/wiki/MediaWiki
# TAB:
https://en.wikipedia.org/wiki/Main_Page
# ClosedTabs:
# TAB:
about:startpage
https://www.yahoo.com/
# LastSession:
# TAB:
about:startpage
https://askubuntu.com/
# ClosedTabs:
# TAB:
https://www.mozilla.org/en-US/
https://www.google.com/gmail/about/
Run Code Online (Sandbox Code Playgroud)
当 Firefox 关闭时,您可以获取上次会话的数据。该方法与上面解释的相同,但recovery.js您不必使用sessionstore.js(或previous.js):
cat $HOME/.mozilla/firefox/*.default/sessionstore.js \
...
Run Code Online (Sandbox Code Playgroud)
正如 Bao 提到的,得票最高的答案在现代 Firefox 中不再有效,因为它所依赖的文件有两个格式更改:
lz4jsoncat读取它。lastAccessed,然后从index字段中找到正确的历史记录项。我更喜欢jq这样。这一句应该可以做到:
lz4jsoncat ~/.mozilla/firefox/*.default-release/sessionstore-backups/recovery.jsonlz4 | jq -r ".windows[0].tabs | sort_by(.lastAccessed)[-1] | .entries[.index-1] | .url"
Run Code Online (Sandbox Code Playgroud)
要在 Ubuntu 上安装必备工具,请运行以下命令:
$ sudo aptitude install jq lz4json
Run Code Online (Sandbox Code Playgroud)