在我的 Perl 代码中,我需要将目录从一个位置复制到同一主机上的另一个位置,不包括某些文件/模式(例如 *.log、./myDir/abc.cl)。在 Perl 中跨所有平台执行此操作的最佳方法是什么?在 Windows 上,xcopy 就是这样一种解决方案。在 unix 平台上,有没有办法在 Perl 中做到这一点?
我认为您正在寻找rsync。它不是 Perl,但它比你用 Perl 做的任何东西都要好得多:
% rsync --exclude='*.log' --exclude='./myDir/abc.cl' SOURCE DEST
Run Code Online (Sandbox Code Playgroud)
如果你有一堆模式,你可以把它们都放在一个文件中:
*.log
./myDir/abc.cl
Run Code Online (Sandbox Code Playgroud)
现在忽略文件中的所有模式:
% rsync --exclude-from=do_not_sync.txt SOURCE DEST
Run Code Online (Sandbox Code Playgroud)