Created
June 21, 2012 18:21
-
-
Save amandabee/2967545 to your computer and use it in GitHub Desktop.
First stab at finding directories with a lot of files in them.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
## If your first variable is a path to a directory that exists, we'll search | |
## there instead of wherever you are. | |
## If you set a second variable that is a number, we'll use that as the cap. | |
if [[ $2 = *[[:digit:]]* ]]; then | |
CAP=$2 | |
else | |
CAP=600 | |
fi | |
#Separate at line breaks, not spaces. | |
IFS=$'\n' | |
## this could/should definitely be more elegant. If you give a path I assume | |
## it is relative to your current working directory. | |
if [ "$1" == "" ]; then | |
RUNDIR=$(pwd) | |
else | |
RUNDIR=$(pwd)/$1 | |
fi | |
if [ ! -d $RUNDIR ]; then | |
echo "Sorry:" $RUNDIR "is not a directory." | |
else | |
echo "Looking for dirs with more than" $CAP "files in" $RUNDIR":" | |
# Find all the directories. | |
for FOLDER in $( find "$RUNDIR" -maxdepth 4 -type d) | |
do | |
for COUNT in $( find "$FOLDER" | wc -l) | |
do | |
if [ "$COUNT" -gt "$CAP" ]; then | |
echo $FOLDER $COUNT | |
fi | |
done | |
done | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment