bash - 将文件名通过目录递归匹配的文件压缩在一起
问题描述
考虑一个像这样的文件系统:
folderA
- one.png
- two.png
- three.png
folderB
- one.png
- two.png
- three.png
folderC
- one.png
- two.png
- three.png
我想将所有匹配的 .png 压缩one.png
到一个名为 .zip 的文件one.zip
中。需要注意的是,它应该只专门搜索文件名而不是查看文件内部,因为生成这些 .png 的代码存在,我不想匹配任何不是实际 .png 的东西。
我尝试搜索,但使用我知道使用的关键字,我得到了很多关于在.zip 文件中搜索的结果。
我在 OSX Mojave 上。将不胜感激任何帮助!
谢谢,阿迪
解决方案
好吧,您可以发疯,将所有one.png
文件放入one.zip
,将所有two.png
文件放入two.zip
,等等:
for file in $( find -name \*.png | sed 's:.*/::' | sort -u ); do
zip $(basename $file .png).zip $( find -name $file )
done
推荐阅读
- android - 分组通知触发相同的待处理意图
- bash - 检测单色图像中最右边黑色像素的 x 值?
- jwt - 使用 Amplify SDK 登录 Cognito,JWT 在哪里?
- javascript - Internet Explorer /Edge 中线元素 (svg) 上的 getTotalLength
- scikit-learn - 如何通过调整决策函数的阈值来调整支持向量分类器(SVC)的预测(svc.predict())?
- python - python中max()、min()函数的正确使用
- laravel - 覆盖 html 模板行为后,我将 AIMEOS 电子商务扩展程序放在 Laravel 文件夹的哪个位置?
- php - 我想动态创建按钮并访问任何特定的
- apache2 - Apache2服务器不工作
- ios - 单击 a 后,我需要覆盖 segue 函数