Skip to content

Instantly share code, notes, and snippets.

@tejovanthn tejovanthn/split_folder.sh
Last active Feb 28, 2018

Embed
What would you like to do?
Bash script to split the current directory into N sub directories each with a set number of files.
# split_folder
#
# Usage:
# split_folder NumberOfFilesPerFolder FileType
#
# Example:
# split_folder 100 "*.jpg"
# split_folder 250 "*.NEF"
function split_folder {
#Optional Positional Arguments
N_FILES=${1:-100} # Number of files you want in each folder.
FILES=${2:-"*.*"} # Filetype, accepts any string.
let m=0 # Loop vairable.
let M=0 # Folder name variable.
for i in $FILES; do
let m=$m+1
if [ $m -gt $N_FILES ]; then # Reset loop variable. Increment folder name.
let m=0
let M=$M+1
fi
if [ ! -d "$M" ]; then # Create the folder if it doesn't exist.
echo "Creating $M"
mkdir "$M"
fi
mv "$i" "$M" # Move this file.
done
echo "Done" # Done.
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.