ফায়ারফক্সের প্রোফাইল.in.in বিদ্যমান প্রোফাইল থেকে পুনরায় জেনারেট করা সম্ভব?


4

আমি সম্প্রতি দুর্ঘটনাক্রমে উবুন্টুতে আমার হোম পার্টিশনটি পূরণ করেছি। কী ঘটেছিল বুঝতে পারার আগে আমি ফায়ারফক্স পুনরায় চালু করেছি কারণ এটি অদ্ভুতভাবে (বোধগম্য) অভিনয় করছে।

এখন, যখন আমি প্রোফাইল ম্যানেজার দিয়ে ফায়ারফক্স শুরু করি (-p ব্যবহার করে) এটি আমার বিদ্যমান প্রোফাইলগুলির কোনও তালিকা করে না। আমি চেক করেছি এবং সমস্ত প্রোফাইল ফোল্ডার এখনও আছে তবে আমার প্রোফাইলস.আইএনআই ফাইলটি মূলত খালি। আমি অনুমান করি পার্টিশন ভরা অবস্থায় এটি দুর্ঘটনার দ্বারা ফাঁকা হয়ে গেছে।

আমি প্রোফাইলগুলি.ini ডিলিট করার চেষ্টা করেছি তবে এটি খালি খালি পুনরায় জেনারেট হয়ে যায়। বিদ্যমান প্রোফাইল ফোল্ডারগুলির উপর ভিত্তি করে কি আমার প্রোফাইলগুলি.ini পুনরায় জেনারেট করা সম্ভব বা আমাকে কেবল হাতে হাতে এটি পুনর্নির্মাণ করতে হবে (মোজিলা ডক্স ফর্ম্যাটটি দেখায় যাতে এটি করা খুব কঠিন মনে হয় না, আমি কেবল সন্ধান করছি অলস বিকল্প)।

উত্তর:


4

কিছু বাশ-প্রেম; আপনার যা খুশি নাম দিন আমি 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${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

ব্যবহার

প্রথমে এটি আপনার মোজিলা প্রোফাইল ডিরেক্টরিতে রাখুন (যেমন আমার জন্য। / .Mozilla / ফায়ারফক্স)।

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

1
ভাল লাগল, আমারও কীভাবে আমার ব্যবহার করতে হবে তাও উল্লেখ করা উচিত ছিল।
রব ভ্যান ড্যাম

2

আমি কোনও গুগলিং খুঁজে পাচ্ছি না তাই আমি পার্ল স্ক্রিপ্ট লিখেছিলাম:

#!/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++;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.