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.
No comments:
Post a Comment