Shell 目录名的匹配问题,不是匹配文件名

新手上路,请多包涵

1.目的:我想通过shell,根据目录名匹配出满足条件的一些目录,然后对匹配出来的目录循环做一些操作,比如复制,删除等等
2.遇到困难:在搜索后,发现在shell中讨论匹配大家一般都是讨论文件名匹配而不是目录名,如何对目录名进行匹配,是我的困难一。
困难二,匹配出结果后如果对这个结果进行循环,比如在shell脚本中,用for args in [ ]等,现在如何把匹配结果放到这个括号中去。

阅读 3.4k
1 个回答

匹配目录这个东西大部分时候还是要靠自己判断,有些命令提供了筛选目录的选项,比如find提供了对应的选项-type d

# get a file
if [[ -d "file" ]];then
    DIRLIST[下标]=${file}
fi

结果如上你可以放在一个数组里面

DIRLIST[0]=one
DIRLIST[1]=two
DIRLIST[2]=three

然后通过for就可以遍历了

for dir in ${DIRLIST[@]};
do
    # do something 
done
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进