我需要你的帮助才能创建一些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.inp
,1960_smt1.inp
等
我理解我的错误是*
符号无法“理解”我想要接受任何角色。有人可以帮我解决一下吗?
答案 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
是否有人知道为什么将[
替换为[[ ]]
与[[ -f ${i}_*.inp ]]
一样会打破模式匹配?