Bash;将目录更改为以 2* 或 21* 开头的文件夹
Bash; change directory to folders start with 2* or 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 即可 return 您回到原始目录。
for dd in */2*; do (
cd "$dd"
# do stuff
); done
我有一系列文件夹,它们是根据创建日期和其他一些信息命名的;即
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 即可 return 您回到原始目录。
for dd in */2*; do (
cd "$dd"
# do stuff
); done