Отримайте каталог файлів 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.


Мабуть, тепер типовим профілем є той, у профілі profile.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щоб показати наявні профілі та вибрати її зі списку.


Правильний dir повинен бути.mozilla
Arch користувач

1
Це те, що я роблю прямо зараз, find $HOMEDIR/.mozilla/firefox/ -maxdepth 1 -type d -name *.default | head -1. Але це МОЖЕ провалитися. Це не гарний спосіб зробити це.
Хорхе Суарес де Ліс

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

Це не вдасться, якщо користувач має більше одного профілю, і він не використовує названийwhatever.default
Jorge Suárez de Lis,

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.