Obtenga el directorio de perfil predeterminado de Firefox de bash

11

Estoy tratando de obtener el directorio de perfil del perfil predeterminado de Firefox (el que se abre automáticamente) de Bash. ¿Cómo podría proceder? No encuentro ninguna opción útil para emitirfirefox --help

Jorge Suárez de Lis
fuente
puede realizar firefox; sudo lsof | grep [username] | grep firefox | grep profileuna instancia que ejecute una instancia de Firefox. lsofle mostrará los archivos abiertos; grepte filtrará las partes interesantes de lsof. Esto iniciará rápidamente la información + necesita algunos ajustes. ¿Para qué necesita la información de todos modos? ¿Quieres poner algunas cosas automáticamente en una carpeta de perfil de Firefox? ¿Por qué?
humanityANDpeace
Quiero obtener el archivo decmod.db de firefox, porque es necesario para una aplicación web Java. Por alguna razón, funciona de forma inmediata en Windows, pero un archivo de configuración con la ruta al archivo decmod.db debe colocarse en casa en Linux. Quiero generar este archivo automáticamente.
Jorge Suárez de Lis
Lo sentimos, no puedo editar mi comentario anterior. Su propuesta "funciona", pero quiero colocar esto en un script de inicio de sesión (por varias razones, es el único lugar que tiene sentido) y no quiero ejecutar Firefox en cada inicio de sesión.
Jorge Suárez de Lis

Respuestas:

13

Tratar grep 'Path=' ~/.mozilla/firefox/profiles.ini | sed s/^Path=//. El nombre predeterminado de la carpeta de perfil se almacena en profiles.ini. Esto funcionará bien mientras tenga un solo perfil.
Si tiene más de un perfil de Firefox, el formato del archivo cambia, por lo que extraer el nombre de la carpeta se vuelve más complicado. Aquí está el guión para hacer eso:

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

Este script funcionará en ambos casos, selecciona el método apropiado dependiendo de la cantidad de perfiles. También funciona en OSX.

whtyger
fuente
Aparentemente, ahora el perfil predeterminado es el de profiles.ini que tiene la línea Default=1y puede estar en cualquier parte del archivo (primero, medio, último).
Xen2050
@ Xen2050 ¿Estás seguro? Verifiqué 2 perfiles diferentes de máquinas Ubuntu y Windows. Ambos no tienen Default=1línea. Ambos tienen [Profile0]sección con Name=defaultellos en su lugar. ¿Puede proporcionar su profiles.iniuso de paste.ubuntu.com ?
whtyger
Solo tiene esa línea extra, debajo del segundo perfil en realidad. He cambiado mi perfil predeterminado usando el administrador de perfiles, intente usarlo también (con la opción -p) y vea si cambia en el suyo. Debe haber páginas de información relacionadas en mozilla.org, pero no puedo buscar en este momento.
Xen2050
Encontré un enlace, lo menciona junto con no preguntar / mostrar el administrador de perfil y usar el último perfil seleccionado para cambiar el valor predeterminado kb.mozillazine.org/Profiles.ini_file
Xen2050
@ Xen2050 Se agregó script para procesar varios perfiles profiles.ini.
whtyger
7

Su directorio de perfil predeterminado se almacena en el directorio de inicio.

cd ~/.mozilla/firefox 

Aquí encontrarás algo como xxxxxxxx.default . Esta es la ubicación donde se almacenan todos sus datos personales.

Puede ejecutar el comando firefox -Ppara mostrar los perfiles disponibles y seleccionar uno de la lista.

devav2
fuente
El directorio correcto debería ser.mozilla
usuario de Arch
1
Eso es lo que estoy haciendo ahora find $HOMEDIR/.mozilla/firefox/ -maxdepth 1 -type d -name *.default | head -1,. Pero eso PUEDE fallar. No es una buena forma de hacerlo.
Jorge Suárez de Lis
@ JorgeSuárezdeLis ¿Podría explicar en qué escenarios esto puede fallar? No estoy en desacuerdo, pero me gustaría saberlo.
Michael Mior
Fallará si el usuario tiene más de un perfil y no está usando el nombrewhatever.default
Jorge Suárez de Lis
1

Sé que esto es un poco más antiguo, pero en caso de que alguien más también necesite esta información, así es como configuro la variable de perfil predeterminada en un script de envoltura para firefox:

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

Espero que esto ayude, ya que funciona para mí.

itnet7
fuente