我在5GB存档上使用此命令
tar -zxvf archive.tar.gz /folder/in/archive
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?似乎永远没有命令行输出......
Ale*_*ios 195
tar默认存储相对路径。如果您尝试存储绝对路径,GNU tar 甚至会这样说:
tar -cf foo.tar /home/foo
tar: Removing leading `/' from member names
Run Code Online (Sandbox Code Playgroud)
如果您需要提取特定文件夹,请查看 tar 文件中的内容:
tar -tvf foo.tar
Run Code Online (Sandbox Code Playgroud)
并记下确切的文件名。就我的foo.tar文件而言,我可以/home/foo/bar通过以下方式提取:
tar -xvf foo.tar home/foo/bar # Note: no leading slash
Run Code Online (Sandbox Code Playgroud)
所以不,您发布的方式(必然)不是正确的方式。您必须省略前导斜杠。如果要模拟绝对路径,cd /请先执行并确保您是超级用户。此外,这也是一样的:
tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
Run Code Online (Sandbox Code Playgroud)
tar将路径转换为相对路径的原因非常明显。一是能够在原始来源以外的地方恢复档案。另一个是安全。您可以解压缩存档,期望其文件出现在您当前的工作目录中,而不是错误地覆盖其他地方的系统文件(或您自己的工作)。
注意:如果使用该-P选项,tar 将归档绝对路径。因此,在提取之前检查大档案的内容总是值得的。
| 归档时间: |
|
| 查看次数: |
270132 次 |
| 最近记录: |