Holen Sie sich das Standard-Firefox-Profilverzeichnis von bash

11

Ich versuche, das Profilverzeichnis des Standard-Firefox-Profils (das automatisch geöffnet wird) von Bash abzurufen. Wie könnte ich vorgehen? Ich kann keine nützlichen Optionen findenfirefox --help

Jorge Suárez de Lis
quelle
Sie können firefox; sudo lsof | grep [username] | grep firefox | grep profileeine Firefox-Instanz zum Laufen bringen. lsofzeigt Ihnen die geöffneten Dateien; grepwird Sie die interessanten Teile von herausfiltern lsof. Dadurch wird der Info + schnell gestartet und muss noch verfeinert werden. Wofür benötigen Sie die Informationen überhaupt? Möchten Sie einige Dinge automatisch in einen Firefox-Profilordner legen - warum?
Menschheit und
Ich möchte die Datei Firefox decmod.db erhalten, da sie für eine Java-Webanwendung benötigt wird. Aus irgendeinem Grund funktioniert es unter Windows sofort, aber eine Konfigurationsdatei mit dem Pfad zur Datei decmod.db sollte unter Linux zu Hause abgelegt werden. Ich möchte diese Datei automatisch generieren.
Jorge Suárez de Lis
Ich kann meinen vorherigen Kommentar leider nicht bearbeiten. Ihr Vorschlag "funktioniert", aber ich möchte dies in ein Sitzungsstart-Skript einfügen (aus mehreren Gründen ist dies der einzige Ort, der Sinn macht), und ich möchte nicht bei jedem Sitzungsstart Firefox ausführen.
Jorge Suárez de Lis

Antworten:

13

Versuchen Sie es grep 'Path=' ~/.mozilla/firefox/profiles.ini | sed s/^Path=//. Der Standardname des Profilordners wird in gespeichert profiles.ini. Dies funktioniert gut, wenn Sie ein einzelnes Profil haben.
Wenn Sie mehr als ein Firefox-Profil haben, ändert sich das Dateiformat, sodass das Extrahieren des Ordnernamens schwieriger wird. Hier ist das Skript dafür:

#!/bin/bash

cd ~/.mozilla/firefox/
if [[ $(grep '\[Profile[^0]\]' profiles.ini) ]]
then PROFPATH=$(grep -E '^\[Profile|^Path|^Default' profiles.ini | grep -1 '^Default=1' | grep '^Path' | cut -c6-)
else PROFPATH=$(grep 'Path=' profiles.ini | sed 's/^Path=//')
fi

echo $PROFPATH

Dieses Skript funktioniert in beiden Fällen. Je nach Anzahl der Profile wird die entsprechende Methode ausgewählt. Funktioniert auch unter OSX.

whtyger
quelle
Anscheinend ist jetzt das Standardprofil das in profile.ini, das die Zeile enthält, Default=1und es kann sich an einer beliebigen Stelle in der Datei befinden (erstes, mittleres, letztes).
Xen2050
@ Xen2050 Bist du sicher? Ich habe 2 verschiedene Profile von Ubuntu & Windows-Computern überprüft. Beide haben keine Default=1Leitung. Beide haben stattdessen einen [Profile0]Abschnitt mit Name=default. Können Sie Ihre profiles.iniVerwendung von paste.ubuntu.com bereitstellen ?
Whtyger
Es hat nur diese eine zusätzliche Zeile, eigentlich unter dem 2. Profil. Ich habe mein Standardprofil mithilfe des Profilmanagers geändert. Versuchen Sie es auch (mit der Option -p) und prüfen Sie, ob es sich bei Ihrem ändert. Es muss verwandte Infoseiten auf mozilla.org geben, aber ich kann momentan nicht suchen.
Xen2050
Habe einen Link gefunden, erwähne ihn zusammen mit nicht fragen / show profile manager & benutze das zuletzt ausgewählte Profil, um die Standardeinstellung zu ändern kb.mozillazine.org/Profiles.ini_file
Xen2050
@ Xen2050 Skript zur Verarbeitung von Multiprofilen hinzugefügt profiles.ini.
Whtyger
7

Ihr Standardprofilverzeichnis wird unter dem Ausgangsverzeichnis gespeichert.

cd ~/.mozilla/firefox 

Hier finden Sie so etwas wie xxxxxxxx.default . Hier werden alle Ihre persönlichen Daten gespeichert.

Sie können den Befehl ausführen firefox -P, um die verfügbaren Profile anzuzeigen und eines aus der Liste auszuwählen.

devav2
quelle
Das richtige Verzeichnis sollte sein.mozilla
Arch User
1
Das mache ich gerade find $HOMEDIR/.mozilla/firefox/ -maxdepth 1 -type d -name *.default | head -1. Aber das kann scheitern. Es ist kein guter Weg, es zu tun.
Jorge Suárez de Lis
@ JorgeSuárezdeLis Können Sie erklären, in welchen Szenarien dies fehlschlagen kann? Nicht anderer Meinung, aber ich würde es gerne wissen.
Michael Mior
Es wird fehlschlagen, wenn der Benutzer mehr als ein Profil hat und das benannte nicht verwendetwhatever.default
Jorge Suárez de Lis
1

Ich weiß, dass dies etwas älter ist, aber falls jemand anderes diese Informationen ebenfalls benötigt, setze ich die Standardprofilvariable in einem Wrapper-Skript für Firefox wie folgt:

def_Pfile=`cat "$HOME/.mozilla/firefox/profiles.ini" | sed -n -e 's/^.*Path=//p' | head -n 1`

Hoffe das hilft, da es bei mir funktioniert.

itnet7
quelle