sur*_*esh 111 linux compression gzip tar
我有一个/public_html/文件夹,在该文件夹中有一个/tmp/文件夹,其中包含70gb的文件,我并不需要.
现在,我想创建一个.tar.gz的/public_html/排除/tmp/
这是我跑的命令:
tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp/"
Run Code Online (Sandbox Code Playgroud)
tar仍在创建,通过做一个ls -sh我可以看到MyBackup.tar.gz已经有大约30gb,我肯定知道/public_html/没有/tmp/超过1GB的文件.
我做错了什么?
Vic*_*mar 192
尝试删除要排除的目录路径的最后一个/末尾
tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp"
Run Code Online (Sandbox Code Playgroud)
Mar*_*ten 37
尝试--exclude在包含之前移动到.
tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/
Run Code Online (Sandbox Code Playgroud)
小智 16
是的,删除尾随/和(至少在ubuntu 11.04中)给出的所有路径必须是相对路径或完整路径.您不能在同一命令中混合绝对路径和相对路径.
sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "home/user/start-directory/logs"
Run Code Online (Sandbox Code Playgroud)
不会排除日志目录但是
sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "./start-directory/logs"
Run Code Online (Sandbox Code Playgroud)
将工作
从压缩中排除目录的正确命令是:
tar --exclude='./folder' --exclude='./upload/folder2' -zcvf backup.tar.gz backup/
Run Code Online (Sandbox Code Playgroud)
确保在源和目标项之前放置--exclude.
并且您可以在不解压缩的情况下检查tar.gz文件的内容:
tar -tf backup.tar.gz
Run Code Online (Sandbox Code Playgroud)
您还可以仅使用 1 来排除多个--exclude。就像这个例子:
tar -pczf MyBackup.tar.gz --exclude={"/home/user/public_html/tmp","/home/user/public_html/data"} /home/user/public_html/
Run Code Online (Sandbox Code Playgroud)
--exclude=目录名称必须不包含且/必须位于MyBackup.tar.gz和/home/user/public_html/之间
语法是:
tar <OPTIONS> <TARBALL_WILL_CREATE> <ARGS> <PATH_TO_COMPRESS>
Run Code Online (Sandbox Code Playgroud)
接受的答案对我来说不起作用,在 windows10 上运行 unxutils tar 。相反,我必须将文件/目录作为最后一个参数进行归档,如下所示:
tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/
Run Code Online (Sandbox Code Playgroud)
然后就成功了。
这对我有用:
tar -zcvf target.tar.gz target/ --exclude="target/backups" --exclude="target/cache"
Run Code Online (Sandbox Code Playgroud)