В моем Perl-коде мне нужно скопировать каталог из одного места в другое на том же хосте, исключая некоторые файлы / шаблоны (например, * .log, ./myDir/abc.cl). Каков оптимальный способ сделать это в Perl на всех платформах? В Windows xcopy является одним из таких решений. На платформах Unix, есть ли способ сделать это в Perl?
Я думаю, что вы ищете Rsync.Это не Perl, но он будет работать намного лучше, чем все, что вы делаете в Perl.
Я бы использовал File::Find и перешел бы через каждый файл, но вместо того, чтобы вызывать File::Copy s copy() для каждого файла, сначала проверьте, соответствует ли он шаблону, а затем next, если он делает.
File::Find
File::Copy
copy()
next
В * nix вы можете использовать собственную команду tar с опциями -exclude . Затем, после создания файла tar, вы можете перенести его в место назначения, чтобы распаковать его.