Migrar atributos de arquivo do Nautilus (Ícones, posições, visualizações de pasta) para outro computador

2

Estou usando as opções do Nautilus para adicionar muito metadados a arquivos. Por exemplo, eu uso o posicionamento manual de ícones, tenho muitos arquivos com ícones e emblemas personalizados, etc.

Como posso copiar todas essas meta-informações para outro computador? Eu entendo que usando rsync ou mecanismos de cópia de arquivos clássicos semelhantes copie apenas o nome, data e hora e conteúdo dos arquivos, mas não o material de luxo que o Nautilus fornece. Mesmo quando eu movo arquivos através de uma unidade remota montada através do próprio Nautulus, esses metadados não são copiados.

Obrigado por qualquer ajuda.

    
por despens 09.05.2012 / 15:20

1 resposta

1

Eu resolvi o problema com um pequeno script em Perl, consulte link

#!/usr/bin/perl

use 5.10.0;
use strict;
use utf8;
use File::Find;
use String::ShellQuote;

sub handler {
    my $filename = shell_quote($_);
    my $metadata = qx/gvfs-info -a metadata::* $filename/ or die "$filename: $!\n";
    my @lines = split(/\n /s, $metadata);
    for my $line (@lines) {
        my ($attribute, $value) = $line =~ m/^\s*(\S+): (.+)$/s;
        if($attribute and $value) {
            # is there an array in the value?
            if($value =~ m/^\[.+\]$/s) {
                $value =~ s/^\[(.+)\]$//gs;
                my @values = split(/[\[\],\s]+/s, $value);
                map shell_quote, @values;
                my $stringv = join(' ', @values);

                say "gvfs-set-attribute $filename -t stringv $attribute $stringv ;";
            }
            else {
                if($value ne '[]') {
                    $value = shell_quote($value);
                    say "gvfs-set-attribute $filename $attribute $value ;";
                }
            }
        }
    }
}

say "#!/bin/sh";

find({wanted => \&handler, follow => 0, no_chdir => 1}, '.');
    
por despens 02.11.2012 / 20:29