#!/usr/bin/perl use strict; use warnings; my $from_dir = '/tmp/from'; my $to_dir = '/tmp/to'; # chdir and set up reader chdir $from_dir or die "chdir $from_dir: $!\n"; open my $from_pipe, 'tar cvf - . |' or die "can't fork input tarpipe: $!\n"; # chdir and set up writer chdir $to_dir or die "chdir $to_dir: $!\n"; open my $to_pipe, '| /bin/tar xvf -' or die "can't fork output tarpipe: $!\n"; while ( <$from_pipe> ) { print $to_pipe $_ } close $from_pipe; close $to_pipe; exit 0;