Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- DOWNLOADS='/home/anon/downloads'
- SORTED='/home/anon/stuff/dlsorted'
- file -N --mime-type --print0 "$DOWNLOADS"/* |
- while read -r -d $'\0' path && read -r mime;
- do
- if ! [ -f "$path" ]
- then
- continue
- fi
- filename="${path##*/}"
- if ! [[ $mime =~ ^\:\ (.[a-z]*)/ ]]
- then
- echo "doesn't parse file output"
- exit 1
- fi
- mime=${BASH_REMATCH[1]}
- mkdir -p "$SORTED/$mime"
- if ! [ $? == 0 ]
- then
- exit 1
- fi
- dest="$SORTED/$mime"
- if [ -e "$SORTED/$mime/$filename" ]
- then
- if ! [[ $filename =~ ^(.[^\.]*)(.*) ]]
- then
- echo "doesn't parse filename"
- exit 1
- fi
- name=${BASH_REMATCH[1]}
- ext=${BASH_REMATCH[2]}
- for (( num=1; ; num++ ))
- do
- dest="$dest/${name}_($num)$ext"
- if ! [ -e "$dest" ]
- then
- break
- fi
- done
- fi
- mv "$DOWNLOADS/$filename" "$dest"
- done
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment