GNU tar可以将多个文件添加到存档中,在添加时删除每个文件吗?
当没有足够的磁盘空间来容纳整个tar存档和原始文件时,这很有用 - 因此,在以通常方式创建存档后,无法简单地手动删除文件.
我有一个大的tar文件split
.是否可以cat
使用管道来解压缩文件.
就像是:
cat largefile.tgz.aa largefile.tgz.ab | tar -xz
Run Code Online (Sandbox Code Playgroud)
代替:
cat largefile.tgz.aa largfile.tgz.ab > largefile.tgz
tar -xzf largefile.tgz
Run Code Online (Sandbox Code Playgroud)
我一直在四处寻找,但我找不到答案.我想看看是否有可能.
任何人都可以告诉我压缩和解压缩java中的tar.gzip文件的正确方法我一直在搜索,但我能找到的最多是zip或gzip(单独).
如何在Windows中创建tar.gz存档文件以在c面板中上传和提取?
我有一个目录,例如/var/tmp/my-dir/
我经常用以下命令压缩:
$ cd /var/tmp/
$ tar -zcf my-dir.tar.gz my-dir/*
Run Code Online (Sandbox Code Playgroud)
后来,当我解开my-dir.tar.gz时,它将my-dir/
在当前目录中创建.听起来这个my-dir
目录被"包裹"在tarball中.是否有tar选项重命名my-dir
为例如your-dir
在实际tarring发生之前.以便 ...
$ tar -zxf my-dir.tar.gz
# So that ... this creates your-dir/, instead of my-dir/
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在尝试制作一个脚本,用于从一个目录中的文件夹中解压缩所有.tar.gz文件.例如,我将调用一个文件(testing.tar.gz).然后如果我手动操作,我可以按"提取",然后.tar.gz文件将创建一个新文件,并调用testing.tar.最后,如果我重复按"提取此处"的过程,.tar文件会将所有.pdf文件生成.
我想知道我怎么能这样做,而且我的代码在这里,似乎并不是现实的工作.
import os
import tarfile
import zipfile
def extract_file(path, to_directory='.'):
if path.endswith('.zip'):
opener, mode = zipfile.ZipFile, 'r'
elif path.endswith('.tar.gz') or path.endswith('.tgz'):
opener, mode = tarfile.open, 'r:gz'
elif path.endswith('.tar.bz2') or path.endswith('.tbz'):
opener, mode = tarfile.open, 'r:bz2'
else:
raise ValueError, "Could not extract `%s` as no appropriate extractor is found" % path
cwd = os.getcwd()
os.chdir(to_directory)
try:
file = opener(path, mode)
try: file.extractall()
finally: file.close()
finally:
os.chdir(cwd)
Run Code Online (Sandbox Code Playgroud) 我刚刚从NPM安装了Flickity,并在运行后得到一份NPM审核安全报告,npm audit
指出我对软件包tar上的任意文件覆盖存在严重的漏洞问题,这是node-sass的依赖项,您可以在此处看到:
High......................... Arbitrary File Overwrite
Package...................... tar
Patched in................... >=4.4.2
Dependency of................ node-sass [dev]
Path......................... node-sass > node-gyp > tar
More info.................... https://npmjs.com/advisories/803
Run Code Online (Sandbox Code Playgroud)
运行npm audit fix
并不能解决问题,因为该漏洞需要手动检查。更多信息链接上的建议说要升级到版本4.4.2
或更高版本。当我运行时,npm show tar version
我意识到我正在运行版本4.4.8
,这让我感到困惑。我去package-lock.json
了解了node-gyp,它是node-sass的依赖项,它使用的是tar版本^ 2.0.0。
这使我感到困惑,因为我已经看到许多不同的tar版本是对其他软件包的依赖,但这node-sass > node-gyp > tar version
是唯一的波纹管v4.4.2
。为什么这样工作,为什么我必须手动修复它,以及如何手动修复/升级这个tar包?
当我下载.tar.gz文件时,我先用两个命令打开它gunzip
,然后再打开它tar
.
是否可以只用一个命令打开它?
我正在运行一个PHP脚本,它让我获得了我想要的文件的绝对路径.这是我的语法:
tar -cf tarname.tar -C /www/path/path/file1.txt /www/path/path2/path3/file2.xls
Run Code Online (Sandbox Code Playgroud)
当我解开它时,它会创建文件的绝对路径.我如何才能获得它/path
下面的所有内容?
有没有办法直接将字符串写入tarfile?从http://docs.python.org/library/tarfile.html看起来,只能添加已写入文件系统的文件.