読者です 読者をやめる 読者になる 読者になる

へっぽこびんぼう野郎のnewbie日記

けろけーろ(´・ω・`)!

ダウンロード後のファイルを勝手に判別して解凍してくれるシェルスクリプト作った。

PC Linux Shell Scripting

ダウンロードする。

→ダウンロードしたファイルのフォルダを開く(or ターミナルでディレクトリまで移動)

→(子ディレクトリを作る)

→その下に解凍

 

が激しくめんどくさかったので一瞬で終わらせるスクリプト作った。

 

.zipとか.rarとか.tar.gzとかを

ダウンロードディレクトリの子ディレクトリに、ファイル名と同じ名前のディレクトリを作って解凍する。

 

.jpgなんかも自由に振り分けることが可能。やらないけど。

ダウンロードと同時にやるように設定してもいいけど、

Google Chromeいじらないといけないような気がするので今回は断念。

 

  1 #!/bin/sh

  2 

  3 cd /home/user/Downloads

  4 LATEST_FILE="`pwd`/`ls -lt * | head -n 1 | gawk '{print $9}'`"

  5 FILE_NAME=${LATEST_FILE%.*}

  6 mkdir $FILE_NAME

  7 cd /$FILE_NAME

  8 case $LATEST_FILE in

  9     *.7z) 7z x $LATEST_FILE ;;

 10     *.arj) unarj $LATEST_FILE ;;

 11     *.bz2) bunzip2 -c $LATEST_FILE ;;

 12     *.cab) cabextract $LATEST_FILE ;;

 13     *.gz) gzip -dc $LATEST_FILE ;;

 14     *.rar) unrar x $LATEST_FILE ;;

 15     *.tar) tar xvf $LATEST_FILE ;;

 16     *.tar.bz2) tar zxvf $LATEST_FILE ;;

 17     *.tar.gz) tar zxvf $LATEST_FILE ;;

 18     *.tar.xz) tar -Jxvf $LATEST_FILE ;;

 19     *.tar.Z) tar zxvf $LATEST_FILE ;;

 20     *.tbz) tar zxvf $lATEST_FILE ;;

 21     *.tgz) tar zxvf $LATEST_FILE ;;

 22     *.zip)  unzip $LATEST_FILE ;;

 23 esac

ファイル名は、適当にrenchinとしておく。

 

使用方法

Google Chromeから/home/user/Downloads/に

hoge.zipをダウンロードした直後だとする。

 

端末から、sh renchin

(/home/user/Downloads/hoge/にhoge.zipが解凍される。)

 

スクリプトの解説。

 4行目 最終更新のファイル名の取得(LATEST_FILE)このへん見た↓

(Linux)指定したディレクトリで一番新しいファイルを探す : 3流プログラマのメモ書き

 5行目 ファイル名から拡張子を取り除いた文字の取得。(FILE_NAME)

bashスクリプトだけで、ファイル名、拡張子を取得する - 作業ノート

 

追記:

繰り返し処理の部分は、書き方変えればまだまだ行数丸めれそう。