web-dev-qa-db-fra.com

Comment obtenir l'URL depuis un onglet firefox depuis le terminal?

Existe-t-il un moyen d'obtenir une telle URL en utilisant une sorte de commande?

6
Amit Rege

Il existe peu de fichiers contenant des informations sur vos sessions:

  • _~/.mozilla/firefox/*.default/sessionstore-backups/recovery.js_ qui contient des informations sur la session en cours, ainsi que des informations sur les onglets fermés et la session précédente. Toutes les 15 secondes, Firefox crée une sauvegarde dans ce fichier . Ce fichier n'est pas disponible lorsque Firefox est fermé.

  • _~/.mozilla/firefox/*.default/sessionstore.js_ qui contient des informations sur la dernière session, lorsque le navigateur Firefox est fermé. Ce fichier n'est pas disponible lorsque Firefox est ouvert.

  • _~/.mozilla/firefox/*.default/sessionstore-backups/previous.js_ qui contient des informations sur la session précédente.

L'analyse du contenu de _recovery.js_ montre que, pour chaque onglet, seules les entrées de l'URL actuelle contiennent la chaîne attributes.


I. Quand Firefox est ouvert:

1.A. Si vous souhaitez obtenir toutes les URL des onglets ouverts à partir de la session en cours, vous pouvez utiliser cette commande:

_cat $HOME/.mozilla/firefox/*.default/sessionstore-backups/recovery.js | \
sed "s/\\_closedTabs.*//" | \
sed "s/{/\n{/g" | \
egrep -o 'url.*attributes' | \
cut -d\" -f3
_

* Veuillez noter que vous devez copy/paste toutes les lignes ensemble dans une fenêtre de terminal et appuyez sur Enter.

Où:

  • _cat $HOME/.mozilla/firefox/*.default/sessionstore-backups/recovery.js_ imprimera le contenu de ce fichier;
  • _sed "s/\\_closedTabs.*//"_ supprimera tout ce qui suit la chaîne __closedTabs_;
  • _sed "s/{/\n{/g" | \_ mettra une nouvelle ligne avant chaque _{_;
  • _egrep -o 'url.*attributes'_ ne filtrera que les parties des lignes qui commencent par url et se terminent par attributes. Sans l'option _-o_, toutes les lignes contenant la chaîne seront filtrées;
  • _cut -d\" -f3_ utilisera _"_ comme délimiteur et filtrera uniquement la 3ème colonne.

Dans mon cas, la sortie de la commande est:

_https://askubuntu.com/
https://www.mozilla.org/en-US/
_

1.B. Si vous souhaitez obtenir les données de la session en cours et de la session précédente en même temps, vous pouvez utiliser ceci:

_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
_

Où:

  • _printf "\n# CurrentSession:\n";_ imprimera _# CurrentSession:_ entre deux nouvelles lignes;
  • _sed "s/\\_closedTabs/\{\"url\":\"# ClosedTabs:\"attributes/g"_ va remplacer la chaîne __closedTabs_ par _"url":"# ClosedTabs:"attributes_ dans tout le "fichier" (option g);
  • _sed "s/\\lastSessionState/\{\"url\":\"# LastSession:\"attributes/"_ remplacera lastSessionState par _"url":"# LastSession:"attributes_;
  • _sed "s/#/\n#/"_ mettra une nouvelle ligne avant chaque _#_.
  • _; echo_ ajoutera une ligne vierge en bas.

Dans mon cas, la sortie de la commande est:

_# 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. Si vous voulez obtenir l’historique, vous pouvez utiliser:

_cat $HOME/.mozilla/firefox/*.default/sessionstore-backups/recovery.js | sed "s/\\_closedTabs.*//" | sed "s/{/\n{/g" | egrep 'url":"http*' | cut -d\" -f4
_

Dans mon cas, la sortie de la commande est:

_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. Vous pouvez insérer un séparateur entre les données de chaque onglet:

_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#/"
_

Dans mon cas, la sortie de la commande est:

_# 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. 1.B. et 2.B. ensemble:

_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
_

Dans mon cas, la sortie de la commande est:

_# 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. Lorsque Firefox est fermé:

Lorsque Firefox est fermé, vous pouvez obtenir les données de la dernière session. L'approche est la même que celle expliquée ci-dessus, mais au lieu de _recovery.js_, vous devez utiliser _sessionstore.js_ (ou _previous.js_):

_cat $HOME/.mozilla/firefox/*.default/sessionstore.js \
...
_

Références:

8
pa4080

glisser/déposer

Faites-le glisser et déposez-le. Faites-le glisser de l'icône à gauche du champ d'adresse. Dans la plupart des navigateurs, vous pouvez voir un i pour l'icône.

Copier/Coller

Vous pouvez également utiliser copier et coller. Copiez le texte du champ d'adresse. Collez-le dans le terminal.

2
L. D. James

La réponse acceptée ne fonctionne pas maintenant, Firefox a supprimé ce fichier.

Alors voici ma (mes) solution (s):

Méthode 1: utilisez des outils d'automatisation du clavier, tels que xdotool, pour afficher les clés permettant de copier l'URL dans le Presse-papiers.

Cette méthode présente certains inconvénients, c’est-à-dire qu’elle modifie le focus actuel du curseur (vous devez d’abord accéder à la barre d’adresse en utilisant Ctrl-L).

Méthode 2: utilisez Grease Monkey, reliez la clé F12 à GM_setClipboard (document.location); utilisez les outils d’automatisation du clavier, envoyez la clé F12 à Firefox; regardez le presse-papiers, sauvegardez-le (peut-être même sauvegardez et restaurez le presse-papiers).

0
Bao Haojun