Выходной URL открытых вкладок firefox в терминале

17

Я хотел бы узнать URL-адреса текущих открываемых вкладок firefox с помощью команды терминала. Есть ли возможность?

Таким образом, я мог бы записать их в текстовый файл и посмотреть на них позже; и безопасные ресурсы (у меня часто много открытых вкладок). Я знаю, что есть надстройка для firefox, но я буду более комфортно писать свой собственный скрипт.

    
задан aldorado 28.08.2013 в 09:14
источник

4 ответа

8

Открытые URL-адреса открытых вкладок Firefox хранятся в файле sessionstore.js , который находится где-то в каталоге $HOME/.mozilla/firefox/XXXXXXXX.default .

Итак, вы можете начать с чего-то вроде этого:

cat $HOME/.mozilla/firefox/*default/sessionstore.js | sed "s/{/\n/g" | egrep -o '"url".*"scroll"' | cut -d\" -f4

Используя cat , мы можем отобразить этот файл, и с помощью sed , egrep и cut мы выбираем только URL-адреса открытых вкладок Firefox из этого файла.

    
ответ дан Radu Rădeanu 28.08.2013 в 12:52
источник
5

Эта информация хранится в $ HOME / .mozilla / firefox / * default / sessionstore.js, а ее формат - json.

Следующий пример был выполнен для работы с PHP. Он просматривает все окна Firefox, все вкладки и получает соответствующую информацию, которая является последней записью внутри «записей». Если бы мы могли использовать xpath для его синтаксического анализа, это было бы похоже на: / windows / * / tabs / last () / url (мое знание xpath является ржавым).

Вы можете скопировать / вставить этот код в терминал:

cat $HOME/.mozilla/firefox/*default/sessionstore.js | php -r '
$json=json_decode(fgets(STDIN), TRUE);
foreach($json["windows"] as $w)
foreach($w["tabs"] as $t)
echo end($t["entries"])["url"]."\n";'

РЕДАКТИРОВАТЬ : с perl (но сначала sudo apt-get install libjson-pp-perl):

cat $HOME/.mozilla/firefox/*default/sessionstore.js | perl -e '
use JSON qw( decode_json );
my $json = decode_json(<STDIN>);
foreach my $w ( @{$json->{"windows"}} ) {
    foreach my $t ( @{$w->{"tabs"}} ) {
        print $t->{"entries"}[-1]->{"url"}."\n";
    }
}'
    
ответ дан Hugo Vieira 28.08.2013 в 14:09
0

Вот как вы можете извлечь текущий URL-адрес вкладки front-most / active в Firefox:

cat recovery.js | php -r '$json=json_decode(fgets(STDIN), TRUE); $tindex = $json["windows"][0]["selected"]-1; $eindex = $json["windows"][0]["tabs"][$tindex]["index"]-1; echo $json["windows"][0]["tabs"][$tindex]["entries"][$eindex]["url"];'

Объяснение: Во-первых, он находит индекс активной вкладки $tindex , а затем индекс активной записи истории на этой вкладке $eindex .

Каждые 15 секунд Firefox создает резервную копию в *default/sessionstore-backups/recovery.js .

    
ответ дан Lenar Hoyt 21.03.2015 в 21:49
0

Используя bash, я нашел следующий ответ. Для этого требуется только пакет: jq. Его можно установить с помощью: apt-get install jq

jq '.windows[].tabs[].entries[].url' ~/.mozilla/firefox/xkxwaf4z.default/sessionstore-backups/recovery.js     

ответ дан Andras Mitzki 01.11.2015 в 09:37