在tarball中分组文件

时间:2011-01-20 22:56:30

标签: bash scripting

我需要你的帮助才能创建一些tarball,以便按年分组一些文件。我使用以下脚本,但收到错误消息:

tar: 2067_*.inp: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors

代码:

for i in `seq 1960 2100` ; do
  tar cvf ${i}_74_1.tar ${i}_*.inp
done

*.inp文件具有以下结构:1960_smt.inp1960_smt1.inp

我理解我的错误是*符号无法“理解”我想要接受任何角色。有人可以帮我解决一下吗?

1 个答案:

答案 0 :(得分:0)

  

2067 _ *。inp:无法统计:没有这样的文件   或目录tar

听起来更像是你实际上没有任何名为2067_XXXX.inp的文件可以归档tar

在尝试将其设置为tar之前,您可能希望检查匹配的文件:

#!/bin/bash

shopt -u nullglob
for i in {1960..2100}; do
  [ -f ${i}_*.inp ] && tar cvf ${i}_74_1.tar ${i}_*.inp
done

P.S。

是否有人知道为什么将[替换为[[ ]][[ -f ${i}_*.inp ]]一样会打破模式匹配?