Sometimes on the command prompt I want to open files without worrying about which application to use for it. Just like with double clicks and file associations. Set this function in your ~/.bashrc and then just use "view <filename>" to render it in the correct application.
function view() {
if [ $# == 0 ]; then
echo "usage: $0 <file1> [ <file2> ... ]"
fi
OLD_IFS=$IFS
IFS=""
for ARG in "$@"; do
if [ -f "$ARG" ]; then
MIME=$(file -b --mime-type "$ARG")
MIME_1=${MIME%/*}
case "$MIME" in
application/pdf)
evince "$ARG" &
continue;;
application/zip | application/x-gzip | application/x-bzip2)
file-roller "$ARG" &
continue;;
application/vnd.ms-excel)
libreoffice --calc "$ARG" &
continue;;
application/msword)
libreoffice --writer "$ARG" &
continue;;
esac
case "$MIME_1" in
archive)
file-roller "$ARG" &
continue;;
image)
eog "$ARG" &
continue;;
text)
sublime_text "$ARG"
continue;;
esac
echo "No handler known for type $MIME"
fi
done
IFS=$OLD_IFS
}
And then re-source you Bash shell:source ~/.bashrcYou're good to go. You might want to modify the file handlers / add some more to match your own setup.