Bash;将目录更改为以2*或21*开头的文件夹



我有一系列文件夹,它们是根据创建日期和其他信息命名的;即

220310_AS
220307_DF
220228_1A
..
211228_QR
..
201224_HH

如何在bash脚本循环中遍历以22或21开头的文件夹?这是我的代码的一部分,它不工作

..
for dd in */2*; do
cd "$dd"
#do something
eval "ls"
cd ..
..

您的通配符*/2*与原始目录下2级的目录匹配。因此,要返回到原始目录,需要cd ../..而不是cd ..

您也可以在子shell中执行cd,然后简单地退出shell将返回到原始目录。

for dd in */2*; do (
cd "$dd"
# do stuff
); done

最新更新