Pobierz domyślny katalog profilu Firefox z bash

11

Próbuję uzyskać katalog profilu domyślnego profilu Firefox (ten, który otwiera się automatycznie) z Bash. Jak mogłem kontynuować? Nie mogę znaleźć żadnych przydatnych opcjifirefox --help

Jorge Suárez de Lis
źródło
możesz du a, firefox; sudo lsof | grep [username] | grep firefox | grep profilektóry uruchomiłby instancję Firefoksa. lsofpokaże otwarte pliki; grepodfiltruje cię z interesujących części lsof. Spowoduje to szybki start info + wymaga dostrajania. Po co ci te informacje? Czy chcesz automatycznie umieszczać jakieś rzeczy w folderze profilu Firefoxa - dlaczego?
humanityANDpeace
Chcę pobrać plik firemox decmod.db, ponieważ jest on potrzebny do aplikacji internetowej Java. Z jakiegoś powodu działa on od razu w systemie Windows, ale plik konfiguracyjny ze ścieżką do pliku decmod.db powinien zostać umieszczony w domu w systemie Linux. Chcę automatycznie wygenerować ten plik.
Jorge Suárez de Lis
Przepraszamy, nie mogę edytować mojego poprzedniego komentarza. Twoja propozycja „działa”, ale chcę umieścić to w skrypcie uruchamiania sesji (z kilku powodów, jest to jedyne sensowne miejsce) i nie chcę uruchamiać Firefoksa przy każdym rozpoczęciu sesji.
Jorge Suárez de Lis

Odpowiedzi:

13

Spróbować grep 'Path=' ~/.mozilla/firefox/profiles.ini | sed s/^Path=//. Domyślna nazwa folderu profilu jest przechowywana w profiles.ini. Będzie to działać dobrze, gdy masz jeden profil.
Jeśli masz więcej niż jeden profil Firefox, format pliku się zmienia, więc wyodrębnienie nazwy folderu staje się trudniejsze. Oto skrypt, aby to zrobić:

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

Ten skrypt będzie działał w obu przypadkach, wybiera odpowiednią metodę w zależności od liczby profili. Działa również w OSX.

whtyger
źródło
Najwyraźniej domyślnym profilem jest ten w profile.ini, który ma linię Default=1i może znajdować się w dowolnym miejscu pliku (pierwszy, środkowy, ostatni).
Xen2050,
@ Xen2050 Czy na pewno? Sprawdziłem 2 różne profile z maszyn Ubuntu i Windows. Oba nie mają Default=1linii. Oba mają zamiast tego [Profile0]sekcję Name=default. Można podać swoje profiles.iniużyciu paste.ubuntu.com ?
whtyger
Ma tylko jedną dodatkową linię, właściwie pod drugim profilem. Zmieniłem mój domyślny profil za pomocą menedżera profili, spróbuj go również użyć (z opcją -p) i sprawdź, czy zmieni się on w twoim. Na mozilla.org muszą znajdować się powiązane strony informacyjne, ale nie mogę teraz wyszukiwać.
Xen2050,
Znalazłem link, wspomina o nim wraz z nie pytaj / pokaż menedżera profilu i użyj ostatnio wybranego profilu, aby zmienić domyślny kb.mozillazine.org/Profiles.ini_file
Xen2050
@ Xen2050 Dodano skrypt do przetwarzania wielu profili profiles.ini.
whtyger
7

Twój domyślny katalog profilu jest przechowywany w katalogu domowym.

cd ~/.mozilla/firefox 

Tutaj znajdziesz coś takiego jak xxxxxxxx.default . To miejsce, w którym przechowywane są wszystkie twoje dane osobowe.

Możesz uruchomić polecenie, firefox -Paby wyświetlić dostępne profile i wybrać jeden z listy.

devav2
źródło
Prawidłowym katalogiem powinien być.mozilla
Arch użytkownik
1
To, co robię teraz, find $HOMEDIR/.mozilla/firefox/ -maxdepth 1 -type d -name *.default | head -1. Ale to MOŻE zawieść. To nie jest dobry sposób, aby to zrobić.
Jorge Suárez de Lis
@ JorgeSuárezdeLis Czy możesz wyjaśnić, w jakich scenariuszach może to się nie powieść? Nie zgadzam się, ale chciałbym wiedzieć.
Michael Mior,
Nie powiedzie się, jeśli użytkownik ma więcej niż jeden profil i nie używa tego o nazwiewhatever.default
Jorge Suárez de Lis
1

Wiem, że to trochę starsze, ale na wypadek, gdyby ktoś inny również potrzebował tych informacji, oto jak ustawić domyślną zmienną profilu w skrypcie opakowania dla firefox:

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

Mam nadzieję, że to pomaga, ponieważ działa dla mnie.

itnet7
źródło