Ottieni la directory predefinita del profilo Firefox da bash


11

Sto cercando di ottenere la directory del profilo predefinito di Firefox (quello che si apre automaticamente) da Bash. Come potrei procedere? Non riesco a trovare alcuna opzione utilefirefox --help


puoi du a firefox; sudo lsof | grep [username] | grep firefox | grep profileche farebbe funzionare un'istanza di firefox. lsofti mostrerà i file aperti; grepti filtrerà le parti interessanti di lsof. Questo avvierà rapidamente le informazioni + ha bisogno di una messa a punto. Per cosa hai bisogno delle informazioni? Vuoi mettere alcune cose automaticamente in una cartella del profilo di Firefox - perché?
umanità e

Voglio ottenere il file decmod.db di firefox, perché è necessario per un'applicazione web Java. Per qualche motivo, funziona immediatamente su Windows, ma un file di configurazione con il percorso del file decmod.db dovrebbe essere posizionato a casa su Linux. Voglio generare questo file automaticamente.
Jorge Suárez de Lis,

Spiacenti, impossibile modificare il mio commento precedente. La tua proposta "funziona", ma voglio inserirla in uno script di inizio sessione (per diversi motivi, è l'unico posto che ha senso) e non voglio eseguire Firefox su ogni avvio di sessione.
Jorge Suárez de Lis,

Risposte:


13

Prova grep 'Path=' ~/.mozilla/firefox/profiles.ini | sed s/^Path=//. Il nome della cartella del profilo predefinito è memorizzato in profiles.ini. Funzionerà perfettamente mentre hai un profilo singolo.
Se hai più di un profilo Firefox, il formato del file cambia, quindi l'estrazione del nome della cartella diventa più complicata. Ecco lo script per farlo:

#!/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

Questo script funzionerà in entrambi i casi, seleziona il metodo appropriato in base alla quantità di profili. Funziona anche in OSX.


Apparentemente ora il profilo predefinito è quello in profiles.ini che ha la linea Default=1e può essere ovunque nel file (primo, medio, ultimo).
Xen2050

@ Xen2050 Sei sicuro? Ho controllato 2 diversi profili da macchine Ubuntu e Windows. Entrambi non hanno Default=1linea. Entrambi hanno [Profile0]sezione con Name=defaultin loro invece. Puoi fornire il tuo profiles.iniutilizzo di paste.ubuntu.com ?
whtyger

Ha solo quella riga in più, sotto il 2 ° profilo in realtà. Ho cambiato il mio profilo predefinito usando il gestore profili, prova anche a usarlo (con l'opzione -p) e vedi se cambia sul tuo. Ci devono essere pagine di informazioni correlate su mozilla.org, ma non sono in grado di effettuare ricerche in questo momento.
Xen2050

Ho trovato un link, lo menziona insieme a non chiedere / mostra gestore profilo e usa l'ultimo profilo selezionato per modificare il file predefinito kb.mozillazine.org/Profiles.ini_file
Xen2050

@ Xen2050 Aggiunto script per elaborare multi-profilo profiles.ini.
whtyger

7

La directory del tuo profilo predefinito è memorizzata nella home directory.

cd ~/.mozilla/firefox 

Qui troverai qualcosa come xxxxxxxx.default . Questa è la posizione in cui sono archiviati tutti i tuoi dati personali.

È possibile eseguire il comando firefox -Pper mostrare i profili disponibili e selezionarne uno dall'elenco.


La directory corretta dovrebbe essere.mozilla
Arch user il

1
Questo è quello che sto facendo adesso find $HOMEDIR/.mozilla/firefox/ -maxdepth 1 -type d -name *.default | head -1,. Ma quello PU fail fallire. Non è un buon modo per farlo.
Jorge Suárez de Lis,

@ JorgeSuárezdeLis Potresti spiegare in quali scenari questo può fallire? Non sono in disaccordo, ma mi piacerebbe saperlo.
Michael Mior,

Fallirà se l'utente ha più di un profilo e non sta usando quello chiamatowhatever.default
Jorge Suárez de Lis

1

So che è un po 'più vecchio, ma nel caso in cui anche qualcun altro abbia bisogno di queste informazioni, ecco come imposto la variabile del profilo predefinito in uno script wrapper per firefox:

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

Spero che questo aiuti, come funziona per me.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.