共有フォルダー、~/ダウンロード、~/ドキュメント フォルダーにファイルをどんどん置いて行くと何のファイルがあるのか分からなくなり整理が大変になります。せめて拡張子毎にディレクトリを作成して、自動で振り分けてみるスクリプトを作成してみました。
extension.sh
#/bin/bash
# 実行ファイル名(extension.sh) を取得
BASH_NAME=`basename $0`
# 実行したディレクトリのファイルリストを取得する。
for file in * ; do
# 実行ファイルは振り分け対象から除外する
if [ "${file}" = "${BASH_NAME}" ]; then
continue;
fi
# ファイルかどうかチェックする。
if [ -f "${file}" ]; then
# ファイル名から拡張子を取得する
extension=`echo "${file}" |sed 's/^.*\.\([^\.]*\)$/\1/'`
# 拡張子の文字列を大文字に変換して既にディレクトリが
# 存在するかチェックして無ければディレクトリを作成する。
# sample.txt -> txt -> TXT
if [ ! -d "${extension^^}" ]; then
mkdir "${extension^^}"
fi
# ファイルをディレクトリに移動する
mv "${file}" "${extension^^}"
fi
done
実行例
# ディレクトリの中身を確認する
$ ls
extension.sh sample.docx sample.jpg sample.pdf sample.png
# スクリプトを実行する
$ ./extension.sh
# ディレクトリの中身を確認すると、拡張子名のディレクトリが作成されている
$ ls
DOCX JPG PDF PNG extension.sh
# ディレクトリ配下のファイルリスト表示して、振り分けられているのを確認する。
$ find
.
./JPG
./JPG/sample.jpg
./extension.sh
./PDF
./PDF/sample.pdf
./PNG
./PNG/sample.png
./DOCX
./DOCX/sample.docx