J'aimerais connaître les URL des onglets firefox actuellement ouverts avec une commande de terminal. Y a-t-il une possibilité?
De cette façon, je pourrais les écrire dans un fichier texte et les regarder plus tard. et des ressources sûres (j'ai souvent de nombreux onglets ouverts). Je sais qu'il existe une extension pour Firefox, mais je serais plus à l'aise d'écrire mon propre script.
Les URL actuellement ouvertes des onglets Firefox ouverts sont stockées dans le fichier sessionstore.js
qui se trouve quelque part dans le répertoire $HOME/.mozilla/firefox/XXXXXXXX.default
.
Donc, vous pouvez partir de quelque chose comme ceci:
cat $HOME/.mozilla/firefox/*default/sessionstore.js | sed "s/{/\n/g" | egrep -o '"url".*"scroll"' | cut -d\" -f4
En utilisant cat
, nous pouvons afficher ce fichier et à l'aide de sed
, egrep
et cut
, nous sélectionnons uniquement les URL des onglets Firefox ouverts à partir de ce fichier.
Ces informations sont stockées dans $ HOME/.mozilla/firefox/* default/sessionstore.js et son format est json.
L'exemple suivant a été conçu pour fonctionner avec PHP. Il parcourt toutes les fenêtres firefox, tous les onglets et obtient les informations pertinentes qui constituent la dernière entrée à l'intérieur des "entrées". Si nous pouvions utiliser xpath pour l’analyser, ce serait quelque chose comme:/windows/*/tabs/last ()/url (ma connaissance de xpath est rouillée).
Vous pouvez copier/coller ce code sur un terminal:
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";'
EDIT: Avec Perl (mais d’abord, 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";
}
}'
En utilisant bash j'ai trouvé la réponse suivante. Il ne nécessite que le paquet: jq. Il peut être installé avec: apt-get install jq
jq '.windows[].tabs[].entries[].url' ~/.mozilla/firefox/xkxwaf4z.default/sessionstore-backups/recovery.js
Voici comment extraire l'URL actuelle de l'onglet le plus en avant/actif dans 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"];'
Explanation: Tout d'abord, il trouve l'index de l'onglet actif $tindex
, puis l'index de l'entrée d'historique active dans cet onglet $eindex
.
Toutes les 15 secondes, Firefox crée une sauvegarde dans *default/sessionstore-backups/recovery.js
.