我使用以下脚本使用php
创建目录的tarballexec("tar -zcvf archive_name.tar.gz *");
这是按预期工作的,但是我想扩展这段代码,以便它只将文件添加到具有特定扩展名的tarball(在这种情况下为* .log),然后在tarball之后删除原始文件创建。任何建议或例子都会很棒。
TIA, 凯文
答案 0 :(得分:3)
您可以将命令更改为:
exec("tar -zcvf archive_name.tar.gz *.log && rm -f *.log")
所做的更改:
而不是传递所有文件(*
)
tar
的参数我们现在通过了*.log
添加了&& rm -f *.log
。命令
rm -f *.log
强行删除全部
来自当前工作的.log
个文件
目录。我们使用&&
作为
这两个命令之间的粘合因为
我们希望仅删除文件
之后创建了tarball。
答案 1 :(得分:2)
这与php无关,因为你只是逃避了shell命令。尝试
exec("tar -zcvf archive_name.tar.gz *.log && rm *.log");
答案 2 :(得分:1)
这应该是在serverfault上。 Tar是一个linux程序。如果你想在纯PHP中做同样的事情,你可以使用glob和Zend_Filter tar适配器:
$files = glob("*.log");
foreach($files as $file) {
$filter = new Zend_Filter_Compress(array(
'adapter' => 'tar',
'options' => array(
'archive' => 'filename.bz2'
),
));
$compressed = $filter->filter($file);
}