2013-02-20 112 views
0

我正在編寫一個Perl腳本,並且在腳本的結尾處,我想將特定目錄的所有內容(如selectedselected.tarPerl:如何打包和解壓目錄中的所有內容,包括文件和子目錄

現在,我需要從另一個位置的另一個perl腳本解壓selected.tar再次到selected目錄。

這是我的純粹要求,我需要保留所有的權限級別,並且應該在SECURE_EXTRACT_MODE下解壓。

總之請告訴我如何打包和解壓包括文件和子目錄在內的所有目錄的內容。

在這方面的任何幫助是高度讚賞。

如果您需要更多詳細信息,請讓我知道。

感謝

+0

你有沒有試過自己?另外,也許你應該多說一些你正在努力完成的事情。你可能會在這裏重新發明輪子。 – 2013-02-20 11:16:51

+0

http://stackoverflow.com/questions/515553/how-can-i-archive-a-directory-in-perl-like-tar-does-in-unix可能有用。 – imp25 2013-02-20 11:26:50

回答

1

要做到這一點沒有脫殼而出,以tar你將需要使用 Archive::Tar::StreamedFile::Find在一起。另外,每個文件都必須足夠小,才能完整地讀入perl進程內存。

像這樣的東西應該做你想做的。

use strict; 
use warnings; 
use autodie; 

use File::Find 'find'; 
use Archive::Tar::Streamed; 

open my $fh, '>:raw', 'selected.tar'; 
my $tar = Archive::Tar::Streamed->new($fh); 

find(sub { $tar->add($File::Find::name) }, '/path/to/selected'); 

close $fh; 
相關問題