标签: tar

如何从tar中提取单个文件到不同的目录?

我知道我可以使用以下命令将单个文件解压缩到当前工作目录(假设我有一个名为test.tar的tar文件,并且其中包含一个名为testfile1和testfile2的文件):

$tar xvf test.tar testfile1
Run Code Online (Sandbox Code Playgroud)

我可以使用-C选项将文件提取到另一个目录:

$tar xvf test.tar -C anotherDirectory/
Run Code Online (Sandbox Code Playgroud)

当我将上述两种技术结合在一起时,我想我可以将一个文件提取到另一个目录中.

$ tar xvf test.tar testfile1 -C anotherDirectory/
Run Code Online (Sandbox Code Playgroud)

但结果是我只能将testfile1提取到当前工作目录,而不是另一个目录.

我想知道如何从tar中提取单个文件到另一个目录?

unix tar

63
推荐指数
1
解决办法
7万
查看次数

如何从stdin构建tar?

如何管道信息以tar指定文件的名称?

tar

62
推荐指数
3
解决办法
8万
查看次数

tar:文件在我们阅读时发生了变化

我正在使用maketar备份.执行makefile时,tar命令显示file changed as we read it.在这种情况下,

  • 当警告出现时,tar包就可以了
  • 但它会停止以下备份的tar命令
  • 显示警告的文件实际上没有改变 - 警告出现真的很奇怪
  • 显示警告的文件随机出现,我的意思是,每次运行我的makefile时,显示警告的文件都不同
  • --ignore-failed-read没有帮助.我在MinGW中使用tar 1.23
  • 我刚把电脑换成了WIN7 64位.该脚本在旧的WIN7 32位中运行良好.但tar版本并不像1.23那样新.

如何在警告后停止tar的警告以停止备份?


编辑-2:可能是原因

正如我上面所说,bash shell脚本在我的旧计算机中运行良好.与旧计算机相比,msys版本不同.tar命令的版本也是如此.在旧计算机中,tar为1.13.19,在新计算机中为1.23.我复制了旧的tar命令,而没有将其依赖项msys-1.0.dll复制到新计算机并将其重命名为tar_old.我还在shell脚本中更新了tar命令并运行脚本.一切都好.所以,似乎问题是tar命令.我确信在去皮时没有任何文件被更改.这是新版本中tar命令的错误吗?我不知道.


编辑-1:添加更多详细信息

备份由bash shell脚本调用.它扫描目标目录并构建makefile然后调用make以使用tar命令进行备份.接下来是由bash shell脚本构建的典型makefile.

#--------------------------------------------
# backup VC
#--------------------------------------------
# the program for packing
PACK_TOOL=tar

# the option for packing tool
PACK_OPTION=cjvf

# M$: C driver
WIN_C_DIR=c:

# M$: D driver
WIN_D_DIR=d:

# M$: where the software is
WIN_PRG_DIR=wuyu/tools
# WIN_PRG_DIR=

# where to save the backup files …
Run Code Online (Sandbox Code Playgroud)

makefile tar

61
推荐指数
6
解决办法
9万
查看次数

如何在Java中提取tar文件?

如何在Java中提取tar(或tar.gz或tar.bz2)文件?

java tar archive

60
推荐指数
7
解决办法
9万
查看次数

如何在不添加目录层次结构的情况下使用Python将文件添加到tarfile中?

当我调用add()一个上tarfile有一个文件路径对象,该文件被添加到与目录层次结构关联的压缩包.换句话说,如果我解压缩tarfile,则会再现原始目录层次结构中的目录.

有没有办法简单地添加一个没有目录信息的普通文件,解压缩生成的tarball产生一个平面的文件列表?

python tar

52
推荐指数
3
解决办法
4万
查看次数

仅将tar文件或目录的内容列为某个级别

我想知道如何将tar文件的内容列出到某种程度?

我理解tar tvf mytar.tar将列出所有文件,但有时我只希望看到某些级别的目录.

同样,对于该命令ls,如何控制将显示的子目录级别?默认情况下,它只显示直接子目录,但不会更进一步.

bash ls tar depth

52
推荐指数
5
解决办法
5万
查看次数

如何将子目录解压缩到当前目录中?

如何将tarball中的子目录解压缩到当前目录中?

例如,来自wordpress的tarball :

wordpress/
wordpress/wp-trackback.php
wordpress/wp-config-sample.php
wordpress/wp-settings.php
wordpress/wp-rss2.php
wordpress/readme.html
wordpress/index.php
...
Run Code Online (Sandbox Code Playgroud)

如何将所有内容解压缩wordpress/到当前目录中?换句话说,它不会创建wordpress目录.

我试过这个没有运气:

tar xvfz latest.tar.gz wordpress -C ./
Run Code Online (Sandbox Code Playgroud)

我知道我可以正常提取并将其移回,但我认为必须有一种方法可以一次性完成.

unix command-line tar

51
推荐指数
2
解决办法
4万
查看次数

检查tar gz文件的总内容大小

如何从命令行中提取.tar.gz文件中未压缩文件总数的大小?

gzip tar

50
推荐指数
5
解决办法
7万
查看次数

如何使用tar提取没有文件夹结构的文件

我有一个tar.gz文件,其结构如下:

folder1/img.gif
folder2/img2.gif
folder3/img3.gif
Run Code Online (Sandbox Code Playgroud)

我想提取没有文件夹层次结构的图像文件,因此提取的结果如下所示:

/img.gif
/img2.gif
/img3.gif
Run Code Online (Sandbox Code Playgroud)

我需要结合Unix和PHP来做到这一点.这是我到目前为止,它的工作原理是将它们提取到指定的目录,但保留文件夹层次结构:

exec('gtar --keep-newer-files -xzf images.tgz -C /home/user/public_html/images/',$ret);
Run Code Online (Sandbox Code Playgroud)

php unix linux tar

50
推荐指数
3
解决办法
5万
查看次数

没有Git元数据的Tarballing

我的源代码树包含几个使用Git源代码控制的目录,我需要对整个树进行tarball,不包括对Git元数据或自定义日志文件的任何引用.

我以为我会使用find/egrep/xargs/tar的组合,但不知何故tar文件包含.git目录和*.log文件.

这就是我所拥有的:

find -type f . | egrep -v '\.git|\.log' | xargs tar rvf ~/app.tar
Run Code Online (Sandbox Code Playgroud)

有人能在这里解释我的误会吗?为什么tar处理find和egrep正在过滤的文件?

我也对其他技术持开放态度.

grep packaging tar find xargs

49
推荐指数
5
解决办法
3万
查看次数

标签 统计

tar ×10

unix ×3

archive ×1

bash ×1

command-line ×1

depth ×1

find ×1

grep ×1

gzip ×1

java ×1

linux ×1

ls ×1

makefile ×1

packaging ×1

php ×1

python ×1

xargs ×1