Получить каталог профиля Firefox по умолчанию из bash


11

Я пытаюсь получить каталог профилей Firefox по умолчанию (тот, который открывается автоматически) из Bash. Как я мог продолжить? Я не могу найти какие-либо полезные варианты выдачиfirefox --help


Вы можете получить, firefox; sudo lsof | grep [username] | grep firefox | grep profileкоторый запустит экземпляр Firefox. lsofпокажет вам открытые файлы; grepотфильтрует вас интересные части lsof. Это быстро запустит информацию + нуждается в тонкой настройке. Для чего вам нужна информация? Вы хотите поместить некоторые вещи автоматически в папку профиля Firefox - почему?
человечествоANDpeace

Я хочу получить файл firefox decmod.db, потому что он необходим для веб-приложения Java. По какой-то причине это работает из коробки в Windows, но файл конфигурации с путем к файлу decmod.db должен быть размещен дома в Linux. Я хочу создать этот файл автоматически.
Хорхе Суарес де Лис

Извините, я не могу редактировать мой предыдущий комментарий. Ваше предложение «работает», но я хочу поместить его в сценарий запуска сеанса (по нескольким причинам, это единственное место, которое имеет смысл), и я не хочу запускать firefox при каждом запуске сеанса.
Хорхе Суарес де Лис

Ответы:


13

Попробуй grep 'Path=' ~/.mozilla/firefox/profiles.ini | sed s/^Path=//. Имя папки профиля по умолчанию хранится в profiles.ini. Это будет хорошо работать, пока у вас есть один профиль.
Если у вас более одного профиля Firefox, формат файла меняется, поэтому извлечение имени папки становится более сложным. Вот скрипт для этого:

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

Этот скрипт будет работать в обоих случаях, он выбирает подходящий метод в зависимости от количества профилей. Работает и в OSX.


По-видимому, теперь профиль по умолчанию - это тот профиль в profiles.ini, в котором есть строка, Default=1и он может находиться в любом месте файла (первый, средний, последний).
Xen2050

@ Xen2050 Ты уверен? Я проверил 2 разных профиля с компьютеров с Ubuntu и Windows. У обоих нет Default=1линии. У обоих есть [Profile0]раздел с Name=defaultними. Можете ли вы предоставить свой profiles.iniиспользование paste.ubuntu.com ?
whtyger

У него только одна дополнительная строка под вторым профилем. Я изменил свой профиль по умолчанию с помощью менеджера профилей, попробуйте использовать его тоже (с опцией -p) и посмотрите, не изменится ли он у вас. На mozilla.org должны быть соответствующие информационные страницы, но я не могу сейчас искать.
Xen2050

Нашел ссылку, упомянул ее вместе с не спрашивать / показывать менеджер профиля и использовать последний выбранный профиль, чтобы изменить значение по умолчанию kb.mozillazine.org/Profiles.ini_file
Xen2050

@ Xen2050 Добавлен скрипт для обработки многопрофильных profiles.ini.
whtyger

7

Каталог вашего профиля по умолчанию хранится в домашнем каталоге.

cd ~/.mozilla/firefox 

Здесь вы найдете что-то вроде xxxxxxxx.default . Это место, где хранятся все ваши личные данные.

Вы можете запустить команду, firefox -Pчтобы показать доступные профили и выбрать один из списка.


Правильный каталог должен быть.mozilla
Arch пользователь

1
Вот чем я сейчас занимаюсь find $HOMEDIR/.mozilla/firefox/ -maxdepth 1 -type d -name *.default | head -1. Но это МОЖЕТ потерпеть неудачу. Это не хороший способ сделать это.
Хорхе Суарес де Лис

@ JorgeSuárezdeLis Не могли бы вы объяснить, в каких случаях это может потерпеть неудачу? Не согласен, но хотелось бы знать.
Майкл Миор

Он потерпит неудачу, если у пользователя более одного профиля, и он не использует один из названныхwhatever.default
Хорхе Суарес де Лис

1

Я знаю, что это немного старше, но на случай, если кому-то еще понадобится эта информация, вот как я устанавливаю переменную профиля по умолчанию в скрипте-обёртке для firefox:

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

Надеюсь, это поможет, так как это работает для меня.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.