sul*_*man 168 unix zip exclude
我正在尝试压缩一个目录(在 Unix 上通过 SSH),但我需要排除几个子目录(以及其中的所有文件和目录)。
到目前为止,我有这个:
zip -r myarchive.zip dir1 -x dir1/ignoreDir/**/*
Run Code Online (Sandbox Code Playgroud)
不过这似乎行不通。
我也试过
zip -r myarchive.zip dir1 -x dir1/ignoreDir1/* dir1/ignoreDir2/*
Run Code Online (Sandbox Code Playgroud)
但是,这仍将包括 ignoreDir1 和 ignoreDir2 中的子目录。
我要排除的目录中的子目录结构非常庞大,因此我不能简单地将每个目录添加到 -x 参数中。
有谁知道如何做到这一点?
sul*_*man 180
我离得那么近!
我需要的实际命令是:
zip -r myarchive.zip dir1 -x dir1/ignoreDir1/**\* dir1/ignoreDir2/**\*
Run Code Online (Sandbox Code Playgroud)
小智 109
对于我的特定系统,为了排除目录,我必须在排除的目录周围加上引号,它的作用就像一个魅力:
zip -r myarchive.zip dir1 -x "dir1/ignoreDir1/*" "dir1/ignoreDir2/*"
Run Code Online (Sandbox Code Playgroud)
笔记:
-- 这排除了要排除的目录和其中的所有文件。
-- 您必须使用要排除的目录的完整路径!
Gia*_* P. 12
@sulman 使用:
zip -r myarchive.zip dir1 -x dir1/ignoreDir1/**\* dir1/ignoreDir2/**\*
仍然会在 zip 存档中包含 dir1/ignoreDir1/ 空文件夹,使用:
zip -r myarchive.zip dir1 -x dir1/ignoreDir1** dir1/ignoreDir2**
可以解决问题,您还可以使用前导 ** 在子文件夹中进行搜索,而不仅仅是 dir1
以下将做
zip -r myarchive.zip dir1 -x dir1/ignoreDir1\* dir1/ignoreDir2\*
你需要什么**
,@sulman?
它对我来说就像一个魅力,如下所示:
[root@ip-00-000-000-000 dir1]# ls -lrt dir1/
total 16
drwxr-xr-x 2 root root 4096 Oct 31 07:38 ignoredir1
drwxr-xr-x 2 root root 4096 Oct 31 07:38 ignoredir2
drwxr-xr-x 2 root root 4096 Oct 31 07:39 dir3
-rw-r--r-- 1 root root 8 Oct 31 07:39 test.txt
[root@ip-00-000-000-000 temp]# zip -r dir1.zip dir1 -x dir1/ignoredir1\* dir1/ignoredir2\*
adding: dir1/ (stored 0%)
adding: dir1/dir3/ (stored 0%)
adding: dir1/dir3/test3.txt (deflated 13%)
adding: dir1/test.txt (stored 0%)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
189656 次 |
最近记录: |