commit 72087fbc7cb2831e5a7a7eadb5cbe95b923fe3faa76425b1a54faf0eda5d0dd7
Author: cybrkyd <noreply@cybrkyd.com>
Date: Fri Jan 16 10:08:08 2026 +0000
redistribute-files
diff --git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..6afe58f
--- /dev/null
+++ b/readme.txt
@@ -0,0 +1,6 @@
+ -----------------------
+ redistribute-files.sh
+ -----------------------
+
+ A bash script to redistribute files evenly amongst sub-folders.
+
diff --git a/redistribute-files.sh b/redistribute-files.sh
new file mode 100644
index 0000000..f60cbb6
--- /dev/null
+++ b/redistribute-files.sh
@@ -0,0 +1,41 @@
+ #!/bin/bash
+
+ # Parent directory containing sub-folders
+ parent_dir="images"
+
+ # Maximum number of files allowed in each sub-folder
+ max_files=1000
+
+ # Get a list of all sub-folders in the parent directory
+ subfolders=("$parent_dir"/*/)
+
+ # Create a temporary folder to store excess files
+ temp_folder="$parent_dir/temp_folder"
+ mkdir -p "$temp_folder"
+
+ # Collect excess files into temp
+ for folder in "${subfolders[@]}"; do
+ file_count=$(find "$folder" -type f | wc -l)
+ if [ "$file_count" -gt "$max_files" ]; then
+ # Move excess files to temp
+ excess_files=$((file_count - max_files))
+ find "$folder" -type f | head -n "$excess_files" | xargs -I {} mv {} "$temp_folder/"
+ fi
+ done
+
+ # Redistribute files from temp to sub-folders
+ while IFS= read -r file; do
+ for folder in "${subfolders[@]}"; do
+ file_count=$(find "$folder" -type f | wc -l)
+ if [ "$file_count" -lt "$max_files" ]; then
+ mv "$file" "$folder"
+ break
+ fi
+ done
+ done < <(find "$temp_folder" -type f)
+
+ # Clean up
+ rmdir "$temp_folder"
+
+ echo "File redistribution complete!"
+