我正在尝试压缩一个目录
/home/cyrus/sql
Run Code Online (Sandbox Code Playgroud)
我想在压缩文件夹时更改工作目录:
/ $ zip -b /home/cyrus sql.zip /home/cyrus/sql
Run Code Online (Sandbox Code Playgroud)
但是当我检查 zip 文件时:
/ $ unzip -l sql.zip
Archive: sql.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-05-30 10:59 home/cyrus/sql/
1776642 2013-05-23 10:22 home/cyrus/sql/wordpress.sql
--------- -------
1776642 2 files
Run Code Online (Sandbox Code Playgroud)
根文件夹应该是sql
. 我做错了什么?
Sté*_*las 22
如果要zip
将给定目录的内容存储zip
在当前目录中,可以这样写:
(cd /some/dir && zip -r - dir-there) > file.zip
Run Code Online (Sandbox Code Playgroud)
Mat*_*DMo 11
来自man zip
:
Run Code Online (Sandbox Code Playgroud)-b path --temp-path path
使用临时 zip 存档的指定路径。例如:
Run Code Online (Sandbox Code Playgroud)zip -b /tmp stuff *
将临时 zip 存档放在目录 /tmp 中,完成后将 stuff.zip 复制到当前目录。当更新现有存档并且包含此旧存档的文件系统没有足够空间同时保存旧存档和新存档时,此选项很有用。在某些情况下进行流式传输以避免需要数据描述符时也可能很有用。请注意,使用此选项可能需要 zip 花费更多时间将存档文件复制到目标文件系统。
默认情况下zip
存储相对于当前目录的完整路径。如果您希望您的 zipfile 将您的sql
目录作为根目录,则需要从该/home/cyrus
目录运行该命令。
小智 7
将您尝试压缩的文件夹符号链接到当前目录可能会更容易。这样您就可以留在原地。
ln -s /path/to/whatever .
zip -r myzip whatever
Run Code Online (Sandbox Code Playgroud)
如果您愿意,它们可以提供符号链接。
-b
指定zip
应该把临时文件放在哪里,而不是它应该在某处更改目录。来自man zip
:
-b path
Use the specified path for the temporary zip archive.
Run Code Online (Sandbox Code Playgroud)
尝试这个:
cd /home/cyrus && zip sql.zip sql
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23489 次 |
最近记录: |