mik*_*980 4 linux shell tar gunzip
我需要从.tar.gzCentOS 服务器上的tarball ( ) 中提取单个文件夹及其子文件夹。我对如何使用 SSH 终端一无所知。
我试过:
gunzip -c files_20100623.0110.tar.gz | tar -xvf home/bsisplas/public_html/staging/template/*.*
Run Code Online (Sandbox Code Playgroud)
但是它似乎无法在存档中找到该文件。此外,gunzip您在语法中的何处指定提取的文件应放在何处?至少可以说,我是 Linux 终端菜鸟。
首先,当您使用-f选项 to 时tar,您需要给它一个参数,告诉它存档的文件名。由于您是从 的管道馈送它gunzip,因此我们通常-表示标准输入:
gunzip -c files_20100623.0110.tar.gz | tar -xvf - home/bsisplas/public_html/staging/template/*.*
Run Code Online (Sandbox Code Playgroud)
我的下一点是您只需要提供目录名称。(另外:*.*通常是 DOS 主义。如果您的意思是 Unix 中的“所有文件”,只需写*。如果您写的*.*是“名称中带有点的所有文件”,它可以排除没有点的重要文件,喜欢Makefile或README):
gunzip -c files_20100623.0110.tar.gz | tar -xvf - home/bsisplas/public_html/staging/template
Run Code Online (Sandbox Code Playgroud)
那应该工作。但是你可以通过使用tar's-z选项让事情变得更容易一些,它告诉它自己做gunzip。我们使用它,并用-存档文件名替换输入文件名:
tar -xvzf files_20100623.0110.tar.gz home/bsisplas/public_html/staging/template
Run Code Online (Sandbox Code Playgroud)
这是如何运作的?