Bash
Firefox - 從命令行讀取打開的標籤的 url
有時我會在 Firefox 中打開很多選項卡,我更喜歡將它們保存到文件中,而不是使用內置書籤。
因此,我(手動)從頁面複製url
about:preferences
,將它們保存到文件中並使用:tr '|' '\n'
在一個小的 bash 腳本中處理文件。稍後當我想從文本文件中重新打開選項卡時,我執行這個小循環:
#!/bin/bash # usage: $bash Open-tabs.sh file-with-bookmarks.txt while read -r line; do firefox -new-tab "$line" 2>/dev/null & sleep 2 done < "$1"
它會以 2 秒的延遲打開所有選項卡。
我想知道是否有辦法,我可以從命令行讀出打開的選項卡的 url,所以我可以將它包含到我的腳本中**?
Source(Changed file path) :獲取所有打開的標籤
此程式碼段獲取目前的 firefox 選項卡 url。它使用
recovery.js[onlz4]
您的配置文件文件夾中的文件。該文件幾乎會立即更新,但它並不總是正確的 url。獲取所有打開的標籤:
python -c ' import io, json, pathlib as p fpath = next(iter(p.Path("~/.mozilla/firefox").expanduser().glob("*.default/sessionstore-backups/recovery.js*"))) with io.open(fpath, "rb") as fd: if fpath.suffix == ".jsonlz4": import lz4.block as lz4 fd.read(8) # b"mozLz40\0" jdata = json.loads(lz4.decompress(fd.read()).decode("utf-8")) else: jdata = json.load(fd) for win in jdata.get("windows"): for tab in win.get("tabs"): i = tab["index"] - 1 print(tab["entries"][i]["url"]) '
這適用於 Firefox 57+。你需要 lz4(通過 pip)。文件頭是從
b'mozLz40\0'
. 如果要在 oneliner 中使用文件路徑,請使用環境變數,相應地替換為\n
and\t
並合併行。export opentabs=$(find ~/.mozilla/firefox*/*.default/sessionstore-backups/recovery.jsonlz4); python3 <<< $'import os, json, lz4.block f = open(os.environ["opentabs"], "rb") magic = f.read(8) jdata = json.loads(lz4.block.decompress(f.read()).decode("utf-8")) f.close() for win in jdata["windows"]: for tab in win["tabs"]: i = int(tab["index"]) - 1 urls = tab["entries"][i]["url"] print(urls)'