Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在perl中创建和读取tar.bz2文件_Perl_Compression_Tar - Fatal编程技术网

在perl中创建和读取tar.bz2文件

在perl中创建和读取tar.bz2文件,perl,compression,tar,Perl,Compression,Tar,我一直在尝试使用 system("tar -jcvf archive_name.tar.bz2 $my_file") 但我犯了个错误 归档文件_name.tar.bz2:无法打开:没有此类文件或目录 tar:错误不可恢复:正在退出 tar:返回的子项状态2 在perl中使用此方法不可能创建.tar.bz2吗?我不想使用模块,但如果绝对必要的话,我会使用模块。首先,您没有使用Perl。您正在生成一个单独的进程来运行该命令 如果要在Perl中执行此操作,则需要使用模块,可能还需要使用模块 第一件事

我一直在尝试使用

system("tar -jcvf archive_name.tar.bz2 $my_file")
但我犯了个错误

归档文件_name.tar.bz2:无法打开:没有此类文件或目录 tar:错误不可恢复:正在退出 tar:返回的子项状态2


在perl中使用此方法不可能创建.tar.bz2吗?我不想使用模块,但如果绝对必要的话,我会使用模块。首先,您没有使用Perl。您正在生成一个单独的进程来运行该命令

如果要在Perl中执行此操作,则需要使用模块,可能还需要使用模块

第一件事是看您是否可以直接从命令行运行此命令:

$ tar -jcvf archive_name.tar.bz2 $my_file
如果不能从命令行运行tar命令,则很可能无法使用
system
命令从Perl内部运行它

运行命令的方式(命令和所有参数都在一个字符串中)导致Perl从shell(通常是
/bin/sh
)运行命令。如果使用列表中的参数运行命令,Perl将不使用shell直接运行命令:

my $error = system qw( tar -jcvf archive_name.tar.bz2 $my_file );

始终检查系统命令的输出以及
$?
的值。命令文档中有关于处理错误的更多信息。

是哪一个
archive_name.tar.bz2
t.tar.bz2
?那
tar cf-my_file | bzip2>archive_name.tar.bz2
呢?你是否建议将所有这些都放在一个system()语句中?我可以试试*我编辑了粘贴错误消息的错误信息Thank you tar cf-my|u file | bzip2>archive_name.tar.bz2工作正常!你知道为什么我的方法行不通吗?我可以推测。您的
tar
版本不支持
-j
选项?您的
tar
版本是根据不同且不兼容的bzip2库编译的?