Skip to content

Instantly share code, notes, and snippets.

@derixithy
Last active March 29, 2016 15:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save derixithy/e1c1e538d19c56623eb0 to your computer and use it in GitHub Desktop.
Save derixithy/e1c1e538d19c56623eb0 to your computer and use it in GitHub Desktop.
Bash Scripts
#!/bin/bash
set +e
SEARCH="${XDG_DOWNLOAD_DIR:-$HOME/Downloads}/*"
DOCUMENTS="${XDG_DOCUMENTS_DIR:-$HOME/Documents}"
DOWNLOADS="${XDG_DOWNLOAD_DIR:-$HOME/Downloads}"
#MUSIC="${XDG_MUSIC_DIR:-$HOME/Music}"
#PICTURES="${XDG_PICTURES_DIR:-$HOME/Pictures}"
#VIDEOS="${XDG_VIDEOS_DIR:-$HOME/Videos}"
function mkmv {
mkdir -p "$2"
mv -f "$1" "$2"
}
for path in $SEARCH
do
file="${path##*/}"
ext="${path##*.}"
name="${path%*.}"
if [[ ! -d "$path" ]]; then
case $ext in
# Music
mp3|ogg|m3u)
mkmv "$path" "$HOME/Music"
;;
# Video
mp4|avi|mov|mkv|3gp)
mkmv "$path" "$HOME/Videos"
;;
# Images
jpg|jpeg|png|bmp|gif)
mkmv "$path" "$DOWNLOADS/Images"
;;
# Documents
pdf|doc|txt)
mkmv "$path" "$DOWNLOADS/Documents"
;;
# Documents
epub)
mkmv "$path" "$DOCUMENTS/ebooks"
;;
# Compressed files
zip|tar|gz|xz|bz2)
mkmv "$path" "$DOWNLOADS/Compressed"
;;
# program files
jar|bin|deb|rpm)
mkmv "$path" "$DOWNLOADS/Applications"
;;
# Disk Images
iso|img)
mkmv "$path" "$DOWNLOADS/Diskimages"
;;
# Unsorted - Everything else
*)
mkmv "$path" "$DOWNLOADS/Dump"
;;
esac
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment