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

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

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

17
задан 28 August 2013 в 16:37

4 ответа

Эта информация хранится в $ 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): [ 115]

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";
    }
}'
0
ответ дан 28 August 2013 в 16:37

Открытые в настоящий момент 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 из этого файла.

0
ответ дан 28 August 2013 в 16:37

Вот как вы можете извлечь текущий URL самой передней / активной вкладки в 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.

0
ответ дан 28 August 2013 в 16:37

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

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

0
ответ дан 28 August 2013 в 16:37

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

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