我有一个/public_html/
文件夹,在该文件夹中有一个/tmp/
文件夹,其中包含70 GB的文件,我并不真正需要。
现在我正在尝试创建一个.tar.gz
/public_html/
,不包括/tmp/
这是我跑的命令:
tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp/"
仍在创建tar,通过ls -sh
我可以看到MyBackup.tar.gz
已经有大约30gb,我确信/public_html/
没有/tmp/
没有超过1GB的文件。
我做错了什么?
答案 0 :(得分:179)
尝试删除目录路径的最后一个/末尾以排除
tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp"
答案 1 :(得分:36)
尝试将--exclude
移至包含之前。
tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/
答案 2 :(得分:15)
是的,删除尾随/
和(至少在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"
将起作用
答案 3 :(得分:8)
从压缩中排除目录的正确命令是:
tar --exclude='./folder' --exclude='./upload/folder2' -zcvf backup.tar.gz backup/
确保将 - 排除在源和目标项之前。
您可以在不解压缩的情况下检查tar.gz文件的内容:
tar -tf backup.tar.gz
答案 4 :(得分:3)
试试这个
tar -pczvf advancedarts.tar.gz /home/user/public_html/ --exclude /home/user/public_html/tmp
答案 5 :(得分:1)
接受的答案对我不起作用,在windows10上运行unxutils tar。相反,我必须将文件/目录存档为最后参数,如下所示:
tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/
然后它奏效了。
答案 6 :(得分:1)
这对我有用:
<List id="idList" width="700px" items="{ path:'/ItemSet'}">
<CustomListItem>
<Label id="id1" text="{item}" width="350px" />
</CustomListItem>
<CustomListItem>
<Label id="id2" text="{item}" width="350px" />
</CustomListItem>
</List>
答案 7 :(得分:0)
您也可以只使用一个--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_html / 之间强>
语法为:
tar <OPTIONS> <TARBALL_WILL_CREATE> <ARGS> <PATH_TO_COMPRESS>
答案 8 :(得分:0)
tar -pczf <target_file.tar.gz> --exclude /path/to/exclude --exclude /another/path/to/exclude/* /path/to/include/ /another/path/to/include
在Ubuntu 19.10中进行了测试。
=
之后的exclude
是可选的。如果愿意,可以在关键字=
后面使用exclude
代替空格。exclude
必须放在源代码之前。答案 9 :(得分:-2)
排除选项需要包含=
符号,并且不需要"
。
--exclude=/home/user/public_html/tmp