使用正则expression式时,Shell'tar:在归档中找不到'错误

使用正则expression式时,Shell'tar:在归档中找不到'错误,第1张

概述使用正则expression式时,Shell'tar:在归档中找不到'错误

当我使用tar -xzf *.gz来提取当前目录中的所有.gz文件时,我Not found in archive错误中Not found in archive .gz文件。 但是,如果我逐一提取或使用for循环,它工作正常

for file in `ls *.gz`; do tar -xzf $file; done

这个错误的原因是什么?

用C / C ++(GCC / G ++)在linux下的套接字编程中发送和接收文件

这个基本的shell脚本导出的东西有什么问题

没有find'gtk / gtk.h'文件即使使用pkg-config

JBoss 4.0.5启动需要15分钟才能部署一个war文件

如何在linux中创buildAlt + Tab友好的全屏程序(如游戏)?

当你写:

tar -xf *.gz

tar命令可以看到(例如):

tar -xf abc.tar.gz def.tar.gz ghi.tar.gz

这被解释为从档案abc.tar.gz提取def.tar.gz和ghi.tar.gz的请求。 由于文件不在那里,您会收到警告消息。

换句话说, tar在一个tar文件(可能被压缩)上运行(在一次调用中)。 它不能在多个tar文件上运行。

请注意,如果abc.tar.gz包含文件pqr/xyz/important.c ,则可以通过指定只提取一个文件:

tar -xf abc.tar.gz pqr/xyz/important.c

你使用的符号只是这个符号的一个变种。

(是的,可以有tar的tar文件的原因,例如,Gmail不允许你发送一个tar文件或gzipped tar文件,其中包含一个可执行的文件,但是,如果你内嵌一个gzipped tar文件一个非压缩的tar文件,它不会查看内部文件来查找可执行文件,当我需要运行带有可执行configure脚本的tar文件时,我使用它)。

当你写

tar -xzf *.gz

你的shell将其扩展为字符串:

tar -xzf 1.gz 2.gz 3.gz

(假设1.gz,2.gz和3.gz在你当前的目录中)。

tar认为你想从1.gz提取2.gz和1.gz ; 他无法在档案中找到这些文件,并导致错误消息。

你需要使用命令xargs循环来提取你的文件。

ls *.gz |xargs -n1 tar -xzf

这意味着:运行我tar -xzf当前目录中的每个gz文件。

主要原因是tar采用单个文件名参数。 当你调用tar *.tgz bash扩展*到tgz formant的所有文件名时,它变成tar file1 file2 file3 ,这是tar不能接受的。 所以要么你for i in *.tgz; do tar -zxvf $i ;done使用for循环for i in *.tgz; do tar -zxvf $i ;done for i in *.tgz; do tar -zxvf $i ;done或者使用一些其他执行tar命令,如注释中所示的副作用,是ls或find . -maxdepth 1 -name *tgz -exec tar -zxvf {} ; find . -maxdepth 1 -name *tgz -exec tar -zxvf {} ; ( ls输出总是有风险的)

总结

以上是内存溢出为你收集整理的使用正则expression式时,Shell'tar:在归档中找不到'错误全部内容,希望文章能够帮你解决使用正则expression式时,Shell'tar:在归档中找不到'错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1232265.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存