![将“bash find”中的文件添加到 7z 存档中](https://linux22.com/image/228761/%E5%B0%86%E2%80%9Cbash%20find%E2%80%9D%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%E6%B7%BB%E5%8A%A0%E5%88%B0%207z%20%E5%AD%98%E6%A1%A3%E4%B8%AD.png)
在问这个之前我做了很多搜索! (即便如此,我还是希望有人指出重复的内容)。
所以我收集了一堆文件,例如:
find . -name "2020-*"
...是否有某种方法可以将所有这些文件“管道”到 .7z 存档中? (注意,我意识到“管道”可能不是正确的词,因为我想要的操作实际上是文件复制操作)。
我尝试过类似的事情:
find . -name "2020-*" | 7z a -p pumple.7z
...这给了我下一行“>”,就好像它期待一些控制台输入一样。
以下内容也是如此:
find . -name "2020-* > 7z a -p pumple.7z
答案1
您需要提供文件名作为参数7z
:
find . -name '2020-*' -exec 7z a -p pumple.7z {} +
这告诉find
我们查找名称匹配的文件(任何类型)2020-*
,当找到此类文件时,运行7z a -p pumple.7z
后跟文件名。是{}
文件名的占位符,+
告诉find
您一次性使用尽可能多的文件名运行该命令。