=== UPDATE ===
@Cyrus答案是有效的,但是,这导致了另一个与我错过的相关问题。
文件夹中有一些包含文件夹的文件夹,因此httpdocs/<folder1>/<folder2>/<etc>/index.php
以及&#39; *&#39;正在接受它们。
我真正想要的是匹配模式httpdocs/<folder>/index.php
我和RegEx的垃圾很不确定我能放什么。有什么想法吗?
我有一个25GB tar.gz
文件,我想从中提取某些文件。文件位置为:
httpdocs/<account>/index.php
<account>
只是意味着它只是一个名字 - 并不过分重要。
这些index.php
个文件中有大约70个以这种格式存在,我只需从TAR中提取这些文件。
我可以按照个别文件(tar -xf site_support_server.com_user-data_1509221232.tgz httpdocs/hotel/index.php
)进行此操作,但正如我所说,其中大约有70个,我不想通过它逐一进行操作。< / p>
我想也许tar -xf site_support_server.com_user-data_1509221232.tgz httpdocs/*/index.php
会起作用,但我不认为它会识别出&#39; *&#39;作为通配符。
我是否遗漏了某些内容,或者其他人对如何快速做到这一点有任何建议?
非常感谢!
答案 0 :(得分:1)
使用GNU tar:
tar -xvzf your_file.tgz --wildcards "*/index.php"
<强>更新强>
tar -tvzf your_file.tgz --wildcards "httpdocs/*/index.php" --exclude="httpdocs/*/*/index.php"
答案 1 :(得分:0)
您可以在一个命令中列出多个归档成员。这意味着你可以这样做:
tar -tf some.tar.gz | grep '/index.php$' | xargs tar -xf some.tar.gz
注意路径中的空格 - 也许您需要用空字节替换换行符并使用xargs -0