Форум «Лаборатории dk»
Здесь общаются Web-разработчики.
 Поиск:  Неотв.  Последние  Полезные  
 Пользователи  Группы  Статистика  Без картинок  
 FAQ  Профиль  Личные сообщения  Регистрация  Вход  

[AD]

 This USB device can perform faster if you... 

Ваш браузер не поддерживает прием Cookies, и вы не являетесь зарегистрированным пользователем. В то же время, данный форум имеет очень мощную систему отслеживания изменений, которая из-за приведенных только что ограничений сейчас не задействована. Мы очень рекомендуем вам либо зарегистрироваться, либо хотя бы включить Cookies, потому что в этом случае удобство и дружелюбие форума резко возрастет.

Возможности системы отслеживания следующие.

  • Темы, в которых имеется хотя бы одно непрочитанное вами сообщение, помечаются красным цветом.
  • Непрочитанные еще темы, созданные после вашего последнего визита на некоторый форум, отмечаются синим цветом.
  • Темы, которые вы ни разу не читали (т.е. потенциально неинтересные), никогда не изменяют свой цвет. Форумы, в которых вы не прочли ни одну тему, также не меняют цвета.
  • Если в том или ином форуме появились изменения, вы можете это сразу же видеть по красному цвету соответствующей пиктограммы.
  • Имеется удобная возможность глобального поиска всех обновленных и измененных тем и форумов.
  • Можно явно помечать темы прочитанными, не читая их при этом.
  • В отличие от крайне неудобного поведения большинства других форумов, темы "гаснут" только в одном случае: если вы их прочитали или явно пометили прочитанными. "Сами собой" цвета не сбрасываются никогда (и в этом — главное удобство).

Помните: зарегистрированные пользователи имеют преимущества перед незарегистрированными.

  • Сведения об изменениях в форуме хранятся для них вечно, а не максимум 2 недели, как для незарегистрированных.
  • Им не надо постоянно вводить свое имя в форме добавления сообщения.

j.bat: рекурсивное создание жестких ссылок NTFS для указанной директории (Дмитрий Кóтеров)
Начaть нoвую тeму   Ответить на тему Предыдущая тема :: Следующая тема     Склад готовых решений :: Perl :: Форум «Лаборатории dk»
Автор Сообщение
Дмитрий Кóтеров
Администратор



Зарегистрирован: 10.03.2003
Сообщ.: 12651
Карма: 73
   поощрить/наказать


СообщениеДобавлено: Пт Dec 09, 2005 12:50 pm (написано за 1 минуту 4 секунды)
   Заголовок сообщения: j.bat: рекурсивное создание жестких ссылок NTFS для указанной директории
Ответить с цитатой

Код (Windows BAT file): скопировать код в буфер обмена
::
:: Рекурсивно создает жесткие ссылки для всех файлов в директории.
:: Это очень удобно для разделения одних и тех же библиотек между
:: разными проектами. (Создавать символьные ссылки на целые директории
:: нельзя, потому что большинство программ не понимают символьных
:: ссылок и начинают рекурсивно удалять содержимое директорий, когда
:: кто-то удаляет символьную ссылку.)
::
:: Например:
::   j path\to\src .
:: Создаст в текущей директории поддиректорию src, в ней создаст все
:: вложенные поддиректории, и в каждой из них создаст жесткие ссылки
:: (junction) для соответствующих файлов из path\to\src.
::
:: Должен быть установлен модуль Perl Win32::Hardlink.
::

@echo off
perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
exit;
#!perl -w
#line 6
#########################################################################
use File::Basename;
my $src = $ARGV[0] or usage();
my $dst = $ARGV[1] || basename($src);

junction($src, $dst);

sub junction {
        my ($src, $dst) = @_;
        if (!-e $src) {
                die "$src does not exist\n";
        }
        # File?
        if (-f $src) {
                if (-e $dst && !-f $dst) {
                        warn "Conflict: -f $src -> !-f $dst\n";
                        return;
                }
                if (-f $dst) {
                        print "f $src -> $dst\n";
                        return;
                } else {
                        print "l $src -> $dst ";
                        my $r = hlink($src, $dst);
                        print($r? "ok" : "skip");
                        print "\n";
                        return $r;
                }
        }
        # Directory?
        if (-d $src) {
                if (-e $dst && !-d $dst) {
                        warn "Conflict: -d $src -> !-d $dst\n";
                        return;
                }
                if (!-d $dst) {
                        print "D $dst\n";
                        mkdir($dst, 0777) or die "Could not create $dst\n";
                } else {
                        print "d $dst\n";
                }
                opendir(local *D, $src) or die "Could not open $src\n";
                foreach my $e (readdir D) {
                        next if $e eq "." || $e eq "..";
                        next if $e eq "CVS";
                        junction("$src/$e", "$dst/$e");
                }
                return 1;
        }
        # Hmmm...
        die "Unknown file type: $src\n";
}

sub hlink {
        my ($src, $dst) = @_;
        local $^W;
        use Win32::Hardlink;
        $src =~ s{/}{\\}sg;
        $dst =~ s{/}{\\}sg;
        my $r = link($src => $dst);
        return $r;
}

sub usage {
        die "Usage:\n  $0 <src-dir> <dst-dir>\n";
}
По сути, это то же самое, что простое копирование директории, НО все файлы остаются "связанными" друг с другом. Т.е. если в будущем меняется файл-источник, поменяется и файл-приемник, и наоборот.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начaть нoвую тeму   Ответить на тему Склад готовых решений :: Perl :: Форум «Лаборатории dk» Часовой пояс: GMT + 3 (Москва)
Страница 1 из 1    Отправить ссылку другу
Ответить
Имя: 
Тема: 
     

Отключить в этом сообщении BBCode
Отключить в этом сообщении смайлики
    HTML ВЫКЛЮЧЕН
BBCode ВКЛЮЧЕН
Смайлики ВКЛЮЧЕНЫ
Вы можете начинать темы. Вы можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать в опросах. Вы не можете прилагать файлы к сообщениям. Вы можете скачивать файлы.


Powered by phpBB. © 2001, 2005 phpBB Group
Хостинг предоставлен компанией SlavHost.ru.
  XML