Как получить URL от вкладки Firefox от терминала?

Существует ли способ получить такой URL с помощью своего рода команд?

6
задан 27 February 2017 в 10:25

3 ответа

Существует немного файлов, кто содержит информацию о Ваших сессиях:

  • ~/.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 будет использовать " как разделитель и отфильтрует только 3th столбец.

В моем случае вывод команды:

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"; распечатает # 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. 2. 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
ответ дан 23 November 2019 в 07:30

Перетаскивают/Отбрасывают

, Перетаскивают его и отбрасывают его. Перетащите его от значка слева от поля адреса. В большинстве браузеров можно видеть меня для значка.

Скопировать/вставить

можно также использовать копию и вставку. Скопируйте текст с поля адреса. Вставьте его в терминал.

2
ответ дан 23 November 2019 в 07:30

Принятый ответ не работает теперь, Firefox удалил тот файл.

Таким образом, вот мое решение (решения) его:

Метод 1: используйте средства автоматизации клавиатуры, такие как xdotool, для регистрации ключей для копирования URL в буфер обмена.

Этот метод имеет некоторые недостатки, то есть, он изменит текущий фокус курсора (необходимо переместиться в строку поиска с помощью Ctrl-L сначала),

Метод 2: используйте Обезьяну Смазки, свяжите ключевой F12 с GM_setClipboard (document.location); используйте средства автоматизации клавиатуры, отправьте ключевой F12 в Firefox; наблюдайте буфер обмена, сохраните его (возможно, даже копируют и восстанавливают буфер обмена).

0
ответ дан 23 November 2019 в 07:30

Другие вопросы по тегам:

Похожие вопросы: