X개 이상의 파일이 있으면 디렉토리를 검색하세요.

X개 이상의 파일이 있으면 디렉토리를 검색하세요.

누구든지 이 작업을 수행하는 가장 좋은 방법을 제안할 수 있는지 궁금합니다. 내 Web Dir에는 약 100개의 폴더가 있습니다. 각 폴더는 clientID입니다.

각 ClientID 폴더 내에는 폴더의 하위 집합이 있습니다. 각 폴더 하위 집합에는 동일한 구조화된 폴더 집합이 포함되어 있습니다.

예:

httpdocs/client1234/amazon/
httpdocs/client1234/ebay/

Amazon 및 Ebay 폴더에서 디렉토리 구조는 다음과 같습니다.

In/
Out/
Backup/

내가 원하는 것은 전체 웹 디렉터리를 스캔하고 IN 디렉터리에서 50개 이상의 파일이 포함된 폴더를 찾는 것입니다.

**IN 디렉토리에 포함된 편집입니다. IN 디렉터리의 파일 개수에만 관심이 있습니다.

답변1

이 줄은 작동합니다:

find httpdocs -mindepth 2 -name In | xargs ls -1 | awk '$0 ~ /httpdocs.*In/{name=$0; start=NR} (NR-start)==50{print name;}'

먼저 모든 디렉터리를 찾은 In다음 모든 파일을 나열하고 마지막으로 해당 디렉터리를 50개 이상의 파일로 필터링합니다.

-mindepth시작 폴더에 따라 조정하십시오.

답변2

이는 요청된 디렉터리를 반복하면서 파일(및 하위 디렉터리의 파일)을 계산하여 50개 이상의 파일이 있는지 확인하고, 그렇다면 일치하는 디렉터리를 다시 표시합니다.

for dir in httpdocs/*/*/In
do
  count=$(find $dir | wc -l)
  if [ $count -gt 50 ]
  then
    echo $dir has more than 50 files
  fi
done

.findwc -l

답변3

#!/bin/bash
 for dir in `find ./httpdocs/*/*/ -name In -type d` ; do
  count=`find $dir -type f | wc -l`
  if [[ $count -gt 50 ]]
     echo $dir
  fi
done

관련 정보