我试图压缩文件夹(/var/www/)来~/www_backups/$time.tar这里$time是当前日期。
这就是我所拥有的:
cd /var/www && sudo tar -czf ~/www_backups $time"
Run Code Online (Sandbox Code Playgroud)
我完全迷失了,我已经在这里呆了几个小时了。不确定是否-czf正确。我只是想将所有内容复制/var/www到一个$time.tar文件中,并且我想维护所有文件的文件权限。谁能帮我吗?
root@server # tar fcz bkup.tar.gz /home/foo/
tar: Removing leading `/' from member names
Run Code Online (Sandbox Code Playgroud)
如何解决此问题并保留/文件名?
我在5GB存档上使用此命令
tar -zxvf archive.tar.gz /folder/in/archive
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?似乎永远没有命令行输出......
我们如何从大型 tar.gz 文件中提取特定文件?我在这个问题中找到了从 tar 中提取文件的过程,但是,当我在那里尝试提到的命令时,出现错误:
$ tar --extract --file={test.tar.gz} {extract11}
tar: {test.tar.gz}: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)
然后我如何从中提取文件tar.gz?
假设我有名为 的文件ugly_name.tar,提取后将成为ugly_name目录。我可以使用什么命令来pretty_name代替生成的目录名称?
所以我需要用最大压缩率压缩一个目录。
我该怎么做xz?我的意思是我也需要,tar因为我不能只用xz. 是否有一个oneliner可以生产例如foo.tar.xz?
在我的公司,我们将本地开发数据库快照下载为db.dump.tar.gz文件。压缩是有道理的,但 tarball 只包含一个文件 ( db.dump)。
归档单个文件是否有任何意义,或者.tar.gz只是这样一种常见的习惯用法?为什么不只是.gz?
我需要备份一个相当大的目录,但我受到单个文件大小的限制。我想基本上创建一个tar.(gz|bz2)档案,该档案被分成 200MB 的最大档案。Clonezilla 通过拆分像这样命名的映像备份来做类似的事情:
sda1.backup.tar.gz.aa
sda1.backup.tar.gz.ab
sda1.backup.tar.gz.ac
Run Code Online (Sandbox Code Playgroud)
有没有办法在一个命令中做到这一点?我了解如何使用该split命令,但我不想创建一个巨大的存档,然后将其拆分为较小的存档,因为这将使我最初创建存档所需的磁盘空间增加一倍。
我在成功执行的 bash 脚本中有这个非常简单的行(即生成_data.tar文件),除了它不排除它通过--exclude选项被告知排除的子目录:
/bin/tar -cf /home/_data.tar  --exclude='/data/sub1/*'  --exclude='/data/sub2/*' --exclude='/data/sub3/*'  --exclude='/data/sub4/*'  --exclude='/data/sub5/*'  /data
Run Code Online (Sandbox Code Playgroud)
相反,它生成一个_data.tar包含 /data 下所有内容的文件,包括我想排除的子目录中的文件。
知道为什么吗?以及如何解决这个问题?
更新我根据下面第一个答案中提供的链接实现了我的观察(首先是顶级目录,最后排除后没有空格):
/bin/tar -cf /home/_data.tar  /data  --exclude='/data/sub1/*'  --exclude='/data/sub2/*'  --exclude='/data/sub3/*'  --exclude='/data/sub4/*'  --exclude='/data/sub5/*'
Run Code Online (Sandbox Code Playgroud)
但这没有帮助。所有“排除的”子目录都存在于结果_data.tar文件中。
这令人费解。无论这是当前 tar(GNU tar 1.23,在 CentOS 6.2,Linux 2.6.32 上)中的错误,还是 tar 对空格和其他容易错过的错别字“极度敏感”,我都认为这是一个错误。目前。
这太可怕了:我尝试了下面建议的见解(没有尾随/*),但它在生产脚本中仍然不起作用:
/bin/tar -cf /home/_data.tar  /data  --exclude='/data/sub1'  --exclude='/data/sub2'  --exclude='/data/sub3'  --exclude='/data/sub4'
Run Code Online (Sandbox Code Playgroud)
除了引号和 2 个空格而不是 1 个空格之外,我看不出我尝试过的和@Richard Perrin 尝试过的有任何区别。我要试试这个(必须等待每晚脚本作为要支持的目录运行) up 是巨大的)并报告。
/bin/tar -cf /home/_data.tar  /data --exclude=/data/sub1 --exclude=/data/sub2 --exclude=/data/sub3 --exclude=/data/sub4
Run Code Online (Sandbox Code Playgroud)
我开始认为所有这些tar --exclude …
有没有办法在 tar.gz 存档中添加/更新文件?基本上,我有一个存档,其中包含一个文件,/data/data/com.myapp.backup/./files/settings.txt我想从存档中提取该文件(已完成),并在编辑完成后将其推回存档中。我怎样才能做到这一点?是否因为.在路径中而有问题?