压缩目录中除隐藏文件之外的所有文件/目录?

use*_*976 14 unix script bash

mydir除了所有以 a 开头的文件/目录外,如何制作目录中所有文件和子目录的 zip 文件.*

命令:

zip -r mydir.zip mydir/
Run Code Online (Sandbox Code Playgroud)

...将包括一切。例如,如果我有:

mydir/foo
mydir/bar
mydir/.hello
Run Code Online (Sandbox Code Playgroud)

我希望foobar包含在 中mydir,但不包含.hello

我怎样才能做到这一点?

Jan*_*anC 19

这对我有用:

zip -r mydir.zip mydir -x "*/.*"
Run Code Online (Sandbox Code Playgroud)

@Joe Internet,@Dariusz:正常的 shell 模式将无法正常工作,因为 zip 在内部与完整路径+文件名匹配(如 zip 手册所述...;))


Sla*_*ast 5

更短,并利用了通配符的特性:

zip -r mydir.zip mydir/*
Run Code Online (Sandbox Code Playgroud)

(. 文件不包含在 * 通配符中)

请注意,目录“mydir/”可能不包含在生成的 zip 文件中的文件路径中,因此这会稍微改变输出。因此,您可能必须更改提取过程。