-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexecutable_organize
81 lines (61 loc) · 1.83 KB
/
executable_organize
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/bash
# Get the current working directory
PWD=$(pwd)
# Create Folders
declare -a dirs=("Image_Files" "Audio_Files" "Video_Files" "PDF_Files" "Scripts" "Compressed_Files" "Packages" "Web" "Torrents" "CSVs" "ISO" "Text_Files" "Encrypted_Files" "Folders")
for dir in "${dirs[@]}"; do
[ -d "$PWD/$dir" ] || mkdir "$PWD/$dir"
done
# Initialize counter
count=0
# Function to move files
move_files() {
for ext in $1; do
for file in *.$ext; do
[ -e "$file" ] || continue
mv "$file" $2
((count++))
done
done
}
# Image Files
move_files "png svg jpg jpeg tif tiff bpm gif eps raw webp bmp ico" "$PWD/Image_Files"
# Audio Files
move_files "mp3 m4a flac aac ogg wav wma" "$PWD/Audio_Files"
# Video Files
move_files "mp4 mov avi mpg mpeg webm mpv mp2 wmv mkv" "$PWD/Video_Files"
# PDFs
move_files "pdf docx doc ppt pptx xlsx xls odt ods odp" "$PWD/PDF_Files"
# Text Files
move_files "txt md yaml yml rtf" "$PWD/Text_Files"
# Scripts
move_files "py rb sh run js ts" "$PWD/Scripts"
# Compressed Files
move_files "rar zip xz gz zst tar bz2 7z" "$PWD/Compressed_Files"
# Packages Files
move_files "rpm flatpakref appimage deb" "$PWD/Packages"
# Web Files
move_files "html json css js xml" "$PWD/Web"
# Torrents
move_files "torrent" "$PWD/Torrents"
# CSVs
move_files "csv" "$PWD/CSVs"
# ISO
move_files "iso" "$PWD/ISO"
# Encrypted Files
move_files "asc gpg" "$PWD/Encrypted_Files"
# Move other directories
for dir in */; do
dir=${dir%*/}
if [[ ! " ${dirs[@]} " =~ " ${dir} " ]]; then
mv "$dir" "$PWD/Folders"
((count++))
fi
done
# Only print the final message if count is greater than 0
if [ $count -gt 0 ]; then
echo -e "All done organizing your messy messy Folder"
echo -e "\033[0;32m$count\033[0m files moved."
else
echo -e "\e[33mNothing to organize.\e[0m"
fi