ダウンロードしたファイルを自動振り分け

LINEで送る
Pocket

ブラウザーで見たり、聴いていたファイルを保存しようとすると、 デフォルトでは、ダウンロードフォルダーや前回保存したフォルダーと同じフォルダーに保存され ファイルの形式によって振り分けるのが面倒です。 そんな便利なソフトが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;
LINEで送る
Pocket

  • このエントリーをはてなブックマークに追加

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください