web-dev-qa-db-ja.com

ターミナルからFirefoxタブからURLを取得する方法は?

ある種のコマンドを使用してそのようなURLを取得する方法はありますか?

6
Amit Rege

セッションに関する情報を含むファイルはほとんどありません。

  • 現在のセッションに関する情報を含む~/.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のエントリのみが文字列attributesを含むことを示しています。


I. Firefoxが開いている場合:

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

* 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/

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

どこ:

  • printf "\n# CurrentSession:\n";は、2つの改行の間に# 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/

2.A。履歴を取得したい場合は、以下を使用できます。

cat $HOME/.mozilla/firefox/*.default/sessionstore-backups/recovery.js | sed "s/\\_closedTabs.*//" | sed "s/{/\n{/g" | egrep 'url":"http*' | cut -d\" -f4

私の場合、コマンドの出力は次のとおりです。

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/

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#/"

私の場合、コマンドの出力は次のとおりです。

# 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/

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

私の場合、コマンドの出力は次のとおりです。

# 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/

II。 Firefoxが閉じている場合:

Firefoxが閉じられると、最後のセッションのデータを取得できます。アプローチは上記で説明したものと同じですが、recovery.jsの代わりにsessionstore.js(またはprevious.js)を使用する必要があります。

cat $HOME/.mozilla/firefox/*.default/sessionstore.js \
...

参照:

8
pa4080

ドラッグ/ドロップ

ドラッグアンドドロップします。アイコンからアドレスフィールドの左にドラッグします。ほとんどのブラウザでは、 i アイコンの。

コピー/貼り付け

コピーアンドペーストを使用することもできます。アドレスフィールドからテキストをコピーします。端末に貼り付けます。

2
L. D. James

受け入れられた答えは今は機能しません。firefoxはそのファイルを削除しました。

だからここに私の解決策があります:

方法1:xdotoolなどのキーボードオートメーションツールを使用してキーを送信し、URLをクリップボードにコピーします。

この方法にはいくつかの欠点があります。つまり、カーソルの現在のフォーカスを変更します(最初にCtrl-Lを使用してアドレスバーに移動する必要があります)

方法2:Grease Monkeyを使用して、キーF12をGM_setClipboard(document.location)にバインドします。キーボードオートメーションツールを使用して、キーF12をFirefoxに送信します。クリップボードを見て保存します(クリップボードをバックアップおよび復元することもできます)。

0
Bao Haojun