gpt4 book ai didi

Perl tar 文件递归创建目录

转载 作者:行者123 更新时间:2023-12-02 09:02:50 26 4
gpt4 key购买 nike

我正在使用 Archive::Tar 模块对目录内容进行去皮。

我的脚本如下:

#!/usr/bin/perl -w 

use strict;
use warnings;
use Archive::Tar;
use File::Find;
use Data::Dumper;

my $home_dir = "C:/Users/Documents/Vinod/Perl_Scripts/test/";

my $src_location = $home_dir."LOG_DIR";
my $dst_location = $home_dir."file.tar.gz";

my @inventory = ();
find (sub { push @inventory, $File::Find::name }, $src_location);

print "Files:".Dumper(\@inventory);

my $tar = Archive::Tar->new();

$tar->add_files( @inventory );

$tar->write( $dst_location , 9 );

脚本能够在位置C:/Users/Documents/Vinod/Perl_Scripts/test/创建file.tar.gz文件。

但是当我手动提取file.tar.gz时,它会再次递归地创建整个路径。因此 LOG_DIR 内容将在位置 C:/Users/Documents/Vinod/Perl_Scripts/test/file.tar/file/Users/Documents/Vinod/Perl_Scripts/test/LOG_DIR/中可见

我怎样才能拥有C:/Users/Documents/Vinod/Perl_Scripts/test/LOG_DIR/中的内容C:/Users/Documents/Vinod/Perl_Scripts/test/file.tar/file/ 解压时。

最佳答案

如果您不想重新创建完整路径,chdir进入主目录,并使源目录相对:

my $home_dir = "C:/Users/Documents/Vinod/Perl_Scripts/test/";

chdir $home_dir;
my $src_location = "LOG_DIR";
my $dst_location = $home_dir."file.tar.gz";

关于Perl tar 文件递归创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62072827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com