文件路径操作,并使用shellscript动态归档



已生成输出,但列表正在增长

  • /mnt/数据/workspace/部署/包/npm/v1/回购/*
  • /mnt/数据/workspace/部署/包/atom/v2/回购/*
  • /mnt/数据/workspace/部署/包/摘要/v4/回购/*
  • /mnt/数据/workspace/部署/包/vscode/v8/回购/*

我已经像上面一样生成了文件,但是我需要对它进行操作,以便它可以在以下用例中使用。

1)需要将所有文件从repo移动到相应的v文件夹(删除repo文件夹但需要将其内容推高)。

输出需要像

  • /mnt/数据/workspace/部署/包/npm/v1/*
  • /mnt/数据/workspace/部署/包/atom/v2/*
  • /mnt/数据/workspace/部署/包/摘要/v4/*
  • /mnt/数据/workspace/部署/包/vscode/v8/*

2)将每个输出压缩成以其产品命名的单独文件,并将所有内容压缩成另一个zip。

  • npm.zip
  • atom.zip
  • iterm.zip
  • vscode.zip,,
  • package.zip[将所有内容放在一个文件中]

任务1基本脚本

for i in `ls -d -1 "$PWD/"**/`
do
cd $i && cd ..
mv repo/* .
rm -rf repo
done

它的工作,但它看起来很丑。

我试图获得基于产品名称生成的zip文件。我该怎么做?

首先,简化一下现有的内容。

for i in "$PWD"/**/; do # this will only be directory names
cd "$i"/.. && mv repo/* . && rm -rf repo
done

但我认为我们可以改进它。

base=/mnt/data/workspace/deploy/package
for p in npm atom iterm vscode; do
cd "$base/$p/" && mv repo/* . && rm -rf repo
done
cd "$base/"
zip package *
for p in npm atom iterm vscode; do zip "$p" "$p/"; done

这是你想要的吗?

最新更新