example file Ответов: 2

Как удалить скрытые каталоги usng Perl


В приведенном ниже коде я хочу добавить строку для удаления скрытых каталогов с помощью perl?

Что я уже пробовал:

 sub rename_dirs {
 #print "process started for renaming directories";
    my ( $top_dir, $dir_map ) = @_;

    opendir (my $dh, $top_dir) or die "Can't open $top_dir: $!";
    my $save_dir = getcwd();
    chdir $top_dir;
    while (my $dir = readdir $dh) {
        next if ($dir eq '.') or ($dir eq '..'); 
        if ( exists $dir_map->{$dir} ) {
            my $new_name = $dir_map->{$dir};
            #say "$save_dir: rename $dir $new_name";
            File::Copy::move( $dir, $new_name )
                or die "Could not rename '$dir' as '$new_name': $!";
            $dir = $new_name;
        }
        rename_dirs( $dir, $dir_map ) if -d $dir;

    }
    chdir $save_dir;

}

2 Ответов

Рейтинг:
1

Jochen Arndt

Первый шаг-идентификация скрытых файлов. Это зависит от операционной системы.

В Linux скрытые файлы (и каталоги) обозначаются именем, которое начинается с точки. Поэтому просто проверьте, что первый символ является точкой (используйте Файл:: Basename - perldoc.perl.org[^], чтобы получить простое имя файла).

В Windows скрытые файлы обозначаются флагом атрибута файла. Воспользуйся Win32:: File - search.cpan.org[^] для получения и установки атрибутов.

После того, как вы их идентифицировали, выполните необходимое действие (мне непонятно, хотите ли вы их удалить или исключить).


Рейтинг:
0