재귀 없이 ls하는 방법

재귀 없이 ls하는 방법

디렉토리에 패턴이 있는 일부 파일을 찾으려고 합니다. 재귀가 아닌 첫 번째 레벨만 스캔하고 싶습니다.

내 스크립트:

for i in $(ls $INCOMINGDIR/*$BUSSINESSDATE*)
do
  echo $i;
done

위 명령은 재귀적으로 검색합니다. 첫 번째 수준 디렉터리만 검색하도록 하려면 어떻게 해야 합니까?

답변1

파싱되지 않음ls. 반품ALL_CAPS_VARS를 사용하지 마세요.

for i in "$incoming_dir"/*"$business_date"*; do

대화형으로 하위 디렉터리로 내려가는 것을 방지하는 옵션이 ls있습니다 .-d

ls -d $INCOMINGDIR/*$BUSSINESSDATE*

답변2

이 명령이 재귀적이어야 할 이유는 없습니다. 그러나 $INCOMINGDIR/*$BUSSINESSDATE*디렉터리가 일치하면 디렉터리 자체 대신 해당 디렉터리의 내용이 표시됩니다. 그러나 이 수준을 넘어서면 더 이상 재귀가 없습니다.

이 효과를 피하려면 다음 명령을 사용하십시오.

ls -d "$INCOMINGDIR/"*"$BUSSINESSDATE"*

for ... in출력이 있는 명령은 ls위험합니다.

전반적으로 find더 나은 솔루션인 것 같 거나

for i in "$INCOMINGDIR/"*"$BUSSINESSDATE"*

관련 정보