X個以上のファイルがある場合は、ディレクトリを検索してください。

X個以上のファイルがある場合は、ディレクトリを検索してください。

誰もがこれを行うための最良の方法を提案できるかどうか疑問に思います。私のWeb Dirには約100個のフォルダがあります。各フォルダは clientID です。

各ClientIDフォルダ内にはフォルダのサブセットがあります。各フォルダサブセットには、同じ構造化フォルダセットが含まれています。

例:

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

AmazonとEbayフォルダのディレクトリ構造は次のとおりです。

In/
Out/
Backup/

私が望むのは、Webディレクトリ全体をスキャンし、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

関連情報