Obtenha o diretório de perfil padrão do Firefox no bash


11

Estou tentando obter o diretório de perfil do perfil padrão do firefox (aquele que é aberto automaticamente) no Bash. Como eu poderia proceder? Não consigo encontrar nenhuma opção útil emitidafirefox --help


você pode firefox; sudo lsof | grep [username] | grep firefox | grep profilecriar uma instância que executaria uma instância do firefox. lsofirá mostrar os arquivos abertos; grepirá filtrar você pelas partes interessantes de lsof. Isso iniciará rapidamente a informação + precisa de alguns ajustes. Para que você precisa das informações? Deseja colocar algumas coisas automaticamente em uma pasta de perfil do firefox - por quê?
humanityANDpeace

Eu quero obter o arquivo decef.db do firefox, porque é necessário para um aplicativo Web Java. Por alguma razão, ele funciona imediatamente no Windows, mas um arquivo de configuração com o caminho para o arquivo decmod.db deve ser colocado em casa no Linux. Eu quero gerar este arquivo automaticamente.
Jorge Suárez de Lis

Desculpe, não posso editar meu comentário anterior. Sua proposta "funciona", mas quero colocar isso em um script de início da sessão (por várias razões, é o único lugar que faz sentido) e não quero executar o Firefox no início de cada sessão.
Jorge Suárez de Lis

Respostas:


13

Tente grep 'Path=' ~/.mozilla/firefox/profiles.ini | sed s/^Path=//. O nome da pasta de perfil padrão é armazenado em profiles.ini. Isso funcionará bem enquanto você tiver um perfil único.
Se você tiver mais de um perfil do Firefox, o formato do arquivo será alterado, portanto, a extração do nome da pasta se tornará mais complicada. Aqui está o script para fazer isso:

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

Esse script funcionará nos dois casos, ele seleciona o método apropriado, dependendo da quantidade de perfis. Também funciona no OSX.


Aparentemente, agora o perfil padrão é o profiles.ini que tem a linha Default=1e pode estar em qualquer lugar do arquivo (primeiro, meio, último).
Xen2050 18/03/19

@ Xen2050 Você tem certeza? Eu verifiquei 2 perfis diferentes de máquinas Ubuntu e Windows. Ambos não têm Default=1linha. Ambos têm [Profile0]seção com Name=defaulteles em seu lugar. Você pode fornecer seu profiles.iniusando paste.ubuntu.com ?
whtyger

Só tem uma linha extra, sob o segundo perfil, na verdade. Alterei meu perfil padrão usando o gerenciador de perfis, tente usá-lo também (com a opção -p) e veja se ele muda no seu. Deve haver páginas de informações relacionadas no mozilla.org, mas não consigo pesquisar no momento.
Xen2050 18/03/16

Achou um link, menciona-lo junto com não peça / show perfil de gerenciador de e usar o perfil último selecionado para alterar o padrão kb.mozillazine.org/Profiles.ini_file
Xen2050

@ Xen2050 Adicionado script para processar o multi-perfil profiles.ini.
whtyger

7

Seu diretório de perfil padrão é armazenado no diretório inicial.

cd ~/.mozilla/firefox 

Aqui você encontrará algo como xxxxxxxx.default . Este é o local onde todos os seus dados pessoais são armazenados.

Você pode executar o comando firefox -Ppara mostrar os perfis disponíveis e selecionar um na lista.


O diretório correto deve ser.mozilla
Arch user

1
É o que estou fazendo agora find $HOMEDIR/.mozilla/firefox/ -maxdepth 1 -type d -name *.default | head -1. Mas isso pode falhar. Não é uma boa maneira de fazer isso.
Jorge Suárez de Lis

@ JorgeSuárezdeLis Você poderia explicar em quais cenários isso pode falhar? Não discordo, mas eu gostaria de saber.
Michael Mior

Ele falhará se o usuário tiver mais de um perfil e não estiver usando o nomeadowhatever.default
Jorge Suárez de Lis

1

Eu sei que isso é um pouco mais antigo, mas no caso de alguém precisar também dessas informações, aqui está como eu defino a variável de perfil padrão em um script de wrapper para o Firefox:

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

Espero que isso ajude, pois funciona para mim.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.