我正在尝试压缩网站的主目录,但存档在到达要压缩的文件夹之前包含文件夹的完整路径。该命令zip -r compressed_data.zip /home/vivek/public_html
导致 compressed_data.zip 包含 home->vivek->public_html,而不仅仅是 public_html 及其内容。
我可以在命令中添加什么开关来省略路径中的所有文件夹?
答案1
默认情况下,该zip
过程将存储相对于当前目录的完整路径,因此如果您想要一个如下所示的存档:
/config
/files
/lib
.htaccess
index.html
然后你需要先登录public_html
。也就是说,你可以用一行代码来解释这一点:
cd /home/vivek/public_html && zip -r ~/compressed_data.zip . * ; cd -
这将改变目录,压缩内容,然后返回到主目录。
如果您想将其作为通过 cronjob 或其他进程调用的脚本的一部分执行,请创建如下文件:
#!/bin/bash
dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
(cd "/home/vivek/public_html" && zip -r "${dir}/compressed_data.zip" ./*)
您可以zip
从它的手册页