Можно ли восстановить firefox profiles.ini из существующих профилей?

1072
Rob Van Dam

Недавно я случайно заполнил свой домашний раздел в Ubuntu. Прежде чем я понял, что произошло, я перезапустил Firefox, потому что он действовал странно (понятно).

Теперь, когда я запускаю Firefox с помощью диспетчера профилей (используя -p), он не отображает ни одного из моих существующих профилей. Я проверил, и все папки профиля все еще там, но мой файл profiles.ini в основном пуст. Я полагаю, что он был заблокирован случайно, когда раздел был заполнен.

Я попытался удалить файл profiles.ini, но он просто становится пустым. Можно ли восстановить мои profiles.ini на основе существующих папок профиля, или мне просто нужно будет восстановить его вручную (документы mozilla показывают формат, чтобы его не было слишком сложно сделать, я просто ищу ленивый вариант).

4

2 ответа на вопрос

4
Sam

Некоторая любовь к Баш; Назовите это как хотите. Я использовал thescript.sh

#!/bin/bash  echo '[General]' echo 'StartWithLastProfile=1' echo ''  n=0  for file in * ; do if [ -d $file ] ; then if [[ "$file" =~ .+\.(.+) ]] ; then echo "[Profile$]" echo "Name=$" echo "IsRelative=1" echo "Path=$" if [[ $ == default ]] ; then echo "Default=1" fi echo "" let n++ fi fi done 

использование

Во-первых, поместите его в свой каталог профилей mozilla (например, ~ / .mozilla / firefox для меня).

chmod +x thescript.sh ./thescript.sh ./thescript.sh > profiles.ini 

Выход

nex@Computer:~/.mozilla/firefox > ./thescript.sh  [General] StartWithLastProfile=1  [Profile0] Name=default IsRelative=1 Path=03k202kd.default Default=1  [Profile1] Name=test IsRelative=1 Path=a023lkdl.test   nex@Computer:~/.mozilla/firefox > ./thescript.sh > profiles.ini 
Хорошо, я должен был упомянуть, как использовать мой также. Rob Van Dam 14 лет назад 1
2
Rob Van Dam

Я не могу найти что-то в поиске, поэтому я написал Perl-скрипт:

#!/usr/bin/perl  use strict; use warnings;  my $dir = glob($ARGV[0] || '~/.mozilla/firefox/');  chdir $dir or die "Unable to change to dir $dir: $!"; opendir my $dh, $dir or die "Unable to open dir $dir: $!"; my @dirs = grep { /^[^.]/ && -d $_ } readdir $dh;  # print some boilerplate print <<'START'; [General] StartWithLastProfile=0  START  # try to sort by oldest first (uses a schwartzian transform) # the 'chrome' folder in each profile folder seems to be the oldest file per profile generally @dirs = reverse map { $_->[0] } sort { $a->[1] <=> $b->[1] || $a->[0] cmp $b->[0] } map { [ $_, -C "$_/chrome" ] } grep { -e "$_/chrome" } @dirs;  my $i = 0; foreach my $profile_dir (@dirs) { # folder names are usually of the form zyxwabc.My Profile Name my ($name) = $profile_dir =~ /^[^.]+\.(.*)/; next if ! $name;  print <<"PROFILE"; [Profile$i] Name=$name IsRelative=1 Path=$profile_dir  PROFILE  $i++; } 

Похожие вопросы