Firefox'un profiles.ini dosyasını mevcut profillerden yeniden oluşturmak mümkün mü?


4

Geçenlerde yanlışlıkla evimi Ubuntu'da doldurdum. Olanları fark etmeden önce, Firefox'u yeniden başlattım çünkü garip davranıyordu (anlaşılır şekilde).

Artık firefox'u Profil Yöneticisi ile başlattığımda (-p kullanarak) mevcut profillerimin hiçbirini listelemiyor. Kontrol ettim ve tüm profil klasörleri hala orada, ancak profiles.ini dosyam temelde boş. Bölünme doluyken kazara boşaldığını sanıyorum.

Profiles.ini dosyasını silmeyi denedim, ancak boşaldı. Profillerimden profillerimi yeniden oluşturmak mümkün mü yoksa mevcut profil klasörlerini temel alarak mı yoksa sadece elle yeniden kurmak zorunda mıyım? tembel seçenek).

Yanıtlar:


4

Bazı Bash-aşk; ne istersen söyle. Thescript.sh kullandım

#!/bin/bash

echo '[General]'
echo 'StartWithLastProfile=1'
echo ''

n=0

for file in * ; do
  if [ -d $file ] ; then
     if [[ "$file" =~ .+\.(.+) ]] ; then
        echo "[Profile${n}]"
        echo "Name=${BASH_REMATCH[1]}"
    echo "IsRelative=1"
    echo "Path=${file}"
    if [[ ${BASH_REMATCH[1]} == default ]] ; then
       echo "Default=1"
    fi
    echo ""
    let n++
     fi
  fi
done

kullanım

Öncelikle, mozilla profilleri dizinine yerleştirin (örneğin, benim için ~ / .mozilla / firefox).

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

Çıktı

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

1
Güzel, benimkini de nasıl kullanacağımı söylemeliydim.
Rob Van Barajı

2

Bir şey googling bulamıyorum bu yüzden bir perl komut dosyası yazdı:

#!/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++;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.