命名压缩文件夹

丽兹·爱丽丝

我找到了关于如何在子文件夹中压缩所有文件夹的解决方案。

for i in */*; do zip -r "${i%/}.zip" "$i"; done

问题是我想通过以下方式命名.zip文件夹:parentFolder_zippedFolder.zip,但是如果可能的话,我想保持上面显示的代码结构。我希望它看起来像

for i in */*; do zip -r "parentFolderName"" + ${i%/}.zip" "$i"; done

如果可能的话,但我找不到在bash脚本中执行此操作的方法。

阿德里安·波(Adrien Beau)

给定这样的文件夹结构:

./parent
./parent/child1
./parent/child1/data1
./parent/child2
./parent/child2/data2

运行此命令:for i in */*; do zip -r "${i/\//_}.zip" "$i"; done将产生以下文件:

./parent_child1.zip
./parent_child2.zip

内容与问题中的命令相同,并带有您要求的名称。

请注意,与您的命令相比,zip文件是在上一级创建的。您的命令在parent目录内创建zip文件,我的命令在父目录创建它们

${i/\//_}bash/字符内部变量i中的_字符替换为字符的替换由于/角色是特殊的bash,我们必须逃避它,给予\/如果我们要替换字母t,替换为${i/t/_}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章