Я хотел бы узнать URL-адреса открытых в данный момент вкладок Firefox с помощью команды терминала. Есть ли возможность?
Таким образом, я мог бы записать их в текстовый файл и посмотреть на них позже; и безопасные ресурсы (у меня часто есть много открытых вкладок). Я знаю, что есть дополнение для Firefox, но мне было бы удобнее написать свой собственный сценарий.
Эта информация хранится в $ 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";
}
}'
Открытые в настоящий момент 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 из этого файла.
Вот как вы можете извлечь текущий 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
.
Используя bash, я нашел следующий ответ. Требуется только пакет: JQ. Его можно установить с помощью: apt-get install jq
jq '.windows[].tabs[].entries[].url' ~/.mozilla/firefox/xkxwaf4z.default/sessionstore-backups/recovery.js