Linux 创建.tar.gz文件时排除目录
我有一个Linux 创建.tar.gz文件时排除目录,linux,gzip,tar,compression,Linux,Gzip,Tar,Compression,我有一个/public\u html/文件夹,在这个文件夹中有一个/tmp/文件夹,其中有70gb的文件我并不需要 现在我正在尝试创建一个.tar.gz的/public\u html/排除/tmp/ 这是我运行的命令: tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp/" tar仍在创建中,通过执行ls-sh,我可以看到MyBackup.tar.gz已经有了大约30g
/public\u html/
文件夹,在这个文件夹中有一个/tmp/
文件夹,其中有70gb的文件我并不需要
现在我正在尝试创建一个.tar.gz
的/public\u html/
排除/tmp/
这是我运行的命令:
tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp/"
tar仍在创建中,通过执行ls-sh
,我可以看到MyBackup.tar.gz
已经有了大约30gb的文件,并且我确信没有/tmp/
的/public\u html/
的文件不会超过1GB
我做错了什么?尝试删除要排除的目录路径末尾的最后一个/
tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp"
尝试将--exclude
移动到include之前
tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/
是的,删除尾随的
/
,并且(至少在ubuntu 11.04中)所有给定的路径必须是相对路径或完整路径。不能在同一命令中混合绝对路径和相对路径
sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "home/user/start-directory/logs"
将不排除目录中的日志,但
sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "./start-directory/logs"
会起作用的试试这个
tar -pczvf advancedarts.tar.gz /home/user/public_html/ --exclude /home/user/public_html/tmp
排除选项需要包括
=
符号,而“
不是必需的
--exclude=/home/user/public_html/tmp
从压缩中排除目录的正确命令是:
tar --exclude='./folder' --exclude='./upload/folder2' -zcvf backup.tar.gz backup/
确保在源项和目标项之前放置--exclude
您可以在不解压缩的情况下检查tar.gz文件的内容:
tar -tf backup.tar.gz
您还可以仅使用一个
--exclude
,排除多个。如下示例:
tar -pczf MyBackup.tar.gz --exclude={"/home/user/public_html/tmp","/home/user/public_html/data"} /home/user/public_html/
在--exclude=
中,您必须在没有/
的情况下完成目录名,并且必须介于MyBackup.tar.gz和/home/user/public\u html/
语法是:
tar <OPTIONS> <TARBALL_WILL_CREATE> <ARGS> <PATH_TO_COMPRESS>
tar
接受的答案对我不起作用,在windows10上运行unxutils tar。相反,我必须将要归档的文件/dirs作为最后一个参数,如下所示:
tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/
然后它就起作用了。这对我起作用了:
tar -zcvf target.tar.gz target/ --exclude="target/backups" --exclude="target/cache"
tar-pczf--exclude/path/to/exclude--exclude/other/path/to/exclude/*/path/to/include//other/path/to/include/*
在Ubuntu 19.10中测试
排除
后的=
是可选的。如果愿意,可以使用=
而不是关键字排除
后的空格exclude
必须放在源之前当我在exclude参数中删除绝对路径时,这对我很有用。关于混合绝对路径和相对路径的提示对我来说很关键,
-p
选项的可能重复对于创建函数来说没有任何意义,对吧!?要排除整个文件夹及其内容:tar-pczvf MyBackup.tar.gz/home/user/public_html/--exclude“/home/user/public\u html/tmp/*“我得到了tar:错误退出被以前的错误延迟。
在MacOS中获得错误tar:从成员名称中删除前导“/”无效,我必须使用--exclude=“/home/user/public\u html/tmp
而不是--exclude>”“/home/user/public_html/tmp
忽略我之前无法再编辑的注释:exclude
需要首先指定为注释。至少这是唯一一件对meThanks有效的事情,这对我在旧的Ubuntu 14.04 LTS盒上有效。我也需要在OS X上这样做。“如果文件夹名称中有空间,则需要。”谢谢…这对我在Ubuntu 18.04 LTS上有效