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.