Não analise ls
. Também não use ALL_CAPS_VARS
for i in "$incoming_dir"/*"$business_date"*; do
Interativamente, ls
tem uma opção -d
que impede a exibição em subdiretórios:
ls -d $INCOMINGDIR/*$BUSSINESSDATE*
Eu estou tentando ls alguns arquivos com um padrão em um diretório. Eu só quero digitalizar o primeiro nível não recursivo.
Meu script:
for i in $(ls $INCOMINGDIR/*$BUSSINESSDATE*)
do
echo $i;
done
Acima, o comando digitaliza recursivamente. Como pode fazer isso apenas para verificar o diretório de primeiro nível?
Não analise ls
. Também não use ALL_CAPS_VARS
for i in "$incoming_dir"/*"$business_date"*; do
Interativamente, ls
tem uma opção -d
que impede a exibição em subdiretórios:
ls -d $INCOMINGDIR/*$BUSSINESSDATE*
Não há razão para que este comando seja recursivo. Mas se $INCOMINGDIR/*$BUSSINESSDATE*
corresponder a um diretório, o conteúdo desse diretório será mostrado no lugar do próprio diretório. Mas não haveria recursão além desse nível.
Use este comando para evitar esse efeito:
ls -d "$INCOMINGDIR/"*"$BUSSINESSDATE"*
Os comandos for ... in
com ls
output são arriscados.
Em geral, find
parece uma solução melhor ou
for i in "$INCOMINGDIR/"*"$BUSSINESSDATE"*
Tags bash ls shell-script