从特定目录中的文件创建 tar 文件

Cod*_*er1 5 node.js

我需要使用 nodejs 创建一个tar未包含在父目录中的文件。

例如,这里是文件系统:

/tmp/mydir
/tmp/mydir/Dockerfile
/tmp/mydir/anotherfile
Run Code Online (Sandbox Code Playgroud)

我想要做的是相当于这个:

cd /tmp/mydir
tar -cvf archive.tar *
Run Code Online (Sandbox Code Playgroud)

因此,当我提取archive.tar,Dockerfile将最终出现在我执行命令的同一目录中。

我试过tar.gz和其他一些,但所有的例子都在压缩整个目录,而不仅仅是文件。

我这样做是为了可以利用 Docker REST API 发送构建。

kel*_*lin 6

使用现代模块node-tar,您可以创建一个 .tar 文件,如下所示:

tar.create(
    { file: 'archive.tar' },
    ['/tmp/mydir']
).then(_ => { .. tarball has been created .. })
Run Code Online (Sandbox Code Playgroud)

其他答案中引用的tar.gz模块已被弃用。


Rav*_*avi 2

使用tar.gz模块。这是示例代码

var targz = require('tar.gz');
var compress = new targz().compress('/path/to/compress', '/path/to/store.tar.gz',
function(err){
         if(err)
         console.log(err);
         console.log('The compression has ended!');
});
Run Code Online (Sandbox Code Playgroud)

有关更多选项,请访问文档页面

该软件包现已弃用。检查@Kelin提供的答案。

  • 该页面显示:“此包已被弃用” (2认同)