有没有办法“复制”所有的"**/bin/*.o"
从org.zip
文件到new.zip
没有提取组织.拉链。
org.zip:
$ unzip -l org.zip
Archive: org.zip
Length Date Time Name
--------- ---------- ----- ----
0 04-24-2023 20:13 org/
8 04-24-2023 20:06 org/c.c
0 04-24-2023 20:00 org/bin/
12 04-24-2023 20:02 org/bin/a.o <- wanted
12 04-24-2023 20:05 org/bin/b.o <- wanted
12 04-24-2023 20:03 org/bin/c.o. <- wanted
8 04-24-2023 20:06 org/a.c
8 04-24-2023 20:06 org/b.c
0 04-24-2023 19:59 org/debug/
14 04-24-2023 20:03 org/debug/a.o
14 04-24-2023 20:03 org/debug/b.o
14 04-24-2023 20:03 org/debug/c.o
--------- -------
102 12 files
# wanted files
$ unzip -Z1 org.zip "**/bin/*.o"
org/bin/a.o
org/bin/b.o
org/bin/c.o
我将所有想要的文件解压到一个“tmp”文件中,然后再次压缩,最后删除tmp
文件夹(如下所示):
$ unzip -q -o org.zip '**/bin/*.o' -d ./tmp
$ ( cd ./tmp && zip -q -r - . ) > new.zip
$ rm -rf ./tmp
$ unzip -l new.zip
Archive: new.zip
Length Date Time Name
--------- ---------- ----- ----
0 04-24-2023 20:20 org/
0 04-24-2023 20:20 org/bin/
12 04-24-2023 20:02 org/bin/a.o
12 04-24-2023 20:05 org/bin/b.o
12 04-24-2023 20:03 org/bin/c.o
--------- -------
36 5 files
既然unzip
和zip
都支持流,那么有什么优雅方法来处理它吗?类似于:
$ unzip -Z1 org.zip "**/bin/*.o" | xargs unzip -p -o org.zip | < ... how to zip ... >
1条答案
按热度按时间wlzqhblo1#
使用
zip
和--copy
/-U
标志,如下所示: