![](https://mekou.com/linux-magazine/wp-content/uploads/2017/07/gnome-terminal-214x214.png)
ブラウザーで見たり、聴いていたファイルを保存しようとすると、 デフォルトでは、ダウンロードフォルダーや前回保存したフォルダーと同じフォルダーに保存され ファイルの形式によって振り分けるのが面倒です。 そんな便利なソフトがUbuntuで存在しないか探してみましたが、適当なものがなかったのでスクリプトで作ってみました。 スクリプトは、ファイルの拡張子を識別して、フォルダー毎にファイルを振り分けるスクリプトです。 ブラウザーで保存するフォルダーを毎回選択しなおす必要も無く、毎回同じフォルダーに保存すればファイルを自動で整理することができます。
$ pwd
/home/taro/ダウンロード/
$ ls
audio1.mp3 audio2.ogg audio3.wav dvd.iso image.jpg logoLarge.gif video.mp4
$ filemv.sh
$ ls
ISO 音楽 画像 動画
$ find
./音楽
./音楽/audio3.wav
./音楽/audio1.mp3
./音楽/audio2.ogg
./画像
./画像/image.jpg
./画像/logoLarge.gif
./動画
./動画/video.mp4
./ISO
./ISO/dvd.iso
#!/bin/bash
IFS=$'\n'
#ダウンロードディレクトリを指定
BASEDIR="/home/taro/ダウンロード/";
# FILETYPE を配列化
declare -A FILETYPE;
FILETYPE=(
# 拡張子 保存先ディレクトリ
["iso"]="ISO"
["jpeg"]="画像"
["jpg"]="画像"
["gif"]="画像"
["mp3"]="音楽"
["ogg"]="音楽"
["wav"]="音楽"
["mp4"]="動画"
);
# 連想配列のループ
for file in $(ls $BASEDIR);
do
# ファイル名から拡張子を取得
ext="${file##*.}";
# FILETYPE で登録した拡張子か確認
if [ "${FILETYPE[${ext}]}" != "" ]; then
# ディレクトリが無い場合は作成
if [ ! -d "${BASEDIR}/${FILETYPE[${ext}]}" ]; then
mkdir -p "${BASEDIR}/${FILETYPE[${ext}]}";
fi
ファイルを移動
mv "${BASEDIR}/${file}" "${BASEDIR}${FILETYPE[${ext}]}";
fi
done;