关于压缩,我正在寻找一种方法来确保一个文件被添加到一个档案独立于已经传递到档案创build排除列表。
在我的例子中,我开发了一个应用程序,允许用户在创buildzip文件时指定自己的排除filter。
但是,我需要确保一些自定义文件总是添加到存档中,与filter中指定的内容无关。
例如:
Linux页面caching – 从内核页面caching中删除页面
Java看门狗监控
什么是相当于java.net.InetAddress.getLocalHost()的linux命令行?
curl使用来获得标题
linux打开返回EINVAL的可能原因
指定filter:“* .bar”
所以如果我执行
zip -rq -i foo.bar -x "*.bar"
foo.bar将不会包含在档案中。
所以归结为:
或者,可以开发一个排除expression式,结合用户指定的东西,有效地说,省略所有,但foo.bar?
我提出的一个解决scheme是在它上面做两遍 – 首先用排除列表创build一个存档,然后通过foo.bar增加存档,但是我正在寻找一种方法来完成这个工作。
谢谢
信号量信号与互斥
“事件”命名空间不存在于.NET Core和Mono的nix * es中的“System.Diagnostics”中
GNU Make选项。 打印目标和先决条件
Perf:内核模块符号不在分析中显示
(Nginx / selinux)权限拒绝会话错误,但创build文件
-i选项仅用于包含指定的文件。 使用“foo.bar”模式,我们只包含名为foo.bar的文件,留下其他文件。
-x选项用于排除文件。 使用“* .bar”模式,我们排除了之前包含的foo.bar文件。
此外,您必须考虑将模式解析为路径名扩展,而不是POSIX或Perl正则表达式。 如果你想让模式更复杂,你可以使用扩展模式 。
举例来说:
shopt -s extglob zip -rq foo.zip . -i ?(foo.bar|!(*.bar)) shopt -u extglob
要么:
shopt -s extglob zip -rq foo.zip . -x !(!(*.bar)|foo.bar) shopt -u extglob
但是最后的命令不是递归的,因为这些模式不考虑子目录。 虽然我们使用-r选项,但我们只包含模式中的文件。 手册页告诉我们在'*'之前写入''以便递归应用,但是不适用于所有模式。
举例来说:
zip -rq foo.zip . -i `find ./ -not -name "*.bar" -o -name "foo.bar"`
要么:
zip -r foo.zip . -x `find ./ -name "*.bar" -a -not -name "foo.bar"`
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。