シェルスクリプトでファイルを自動でフォルダーに振り分けるプログラムを実装

スポンサーリンク

はじめに

このブログでは、ポケモンカードの記事を書いたりしているのですが、

記事しようするためにダウンロードしたポケモンカード画像がダウンロードファイルに溜まってしまい、他のダウンロードしたファイルとごちゃごちゃになって整理ができていない状態でした。

そこで今回は、ダウンロードファイルからポケモンカード画像を一括で整理するシェルスクリプトを作成することにしてみました!

UNIXの知識があって、かつUNIXベースOSであるMacBookを使用していたので、せっかくなので自動化に挑戦。

ちなみにポケモンカードは以下のような記事を書いているので、ポケカ好きであればぜひ見てみてください!

スポンサーリンク

概要

作成したファイル:photo.commandを任意の場所に配置し実行することで、

ダウンロードフォルダーにあるポケモンカード画像を指定したフォルダーに一括で移動することができます。

実行前:

スクリプトで使用しているパスは全て絶対パスなので、どのフォルダーにおいても使用できますが、今回は移動先フォルダーに置いて使用することにします

実行後

ダウンロードフォルダーからファイルが消え、移動先フォルダーに移動されました。

ターミナルでの実行

ターミナルで実行すると以下のように完了ログを確認できるようにしています。

※ログ出力は今回は面倒なので省きましたので、挙動を確認する場合はターミナルで「sh -x」コマンドで実施する必要はあります。

スポンサーリンク

仕様

ポケモンカードの画像は接頭文字で体系化してフォルダ名を決めているため、その接頭文字を使用してダウンロードフォルダーから各移動先フォルダーに振り分けます。

接頭文字移動元フォルダー移動先フォルダー
グッズ /Users/<ユーザ名>/Downloads /Users/<ユーザ名>/Pictures/PokemonCard
デッキ /Users/<ユーザ名>/Downloads /Users/<ユーザ名>/Pictures/PokemonCard/デッキ
ヘッダー /Users/<ユーザ名>/Downloads /Users/<ユーザ名>/Pictures/PokemonCard/ヘッダー
ポケモン /Users/<ユーザ名>/Downloads /Users/<ユーザ名>/Pictures/PokemonCard
サポート /Users/<ユーザ名>/Downloads /Users/<ユーザ名>/Pictures/PokemonCard
エネルギー /Users/<ユーザ名>/Downloads /Users/<ユーザ名>/Pictures/PokemonCard
スタジアム /Users/<ユーザ名>/Downloads /Users/<ユーザ名>/Pictures/PokemonCard

グッズ・ポケモン・サポート・エネルギー・スタジアムは、ポケモンカードが公式で定めている種類かつ、記事作成時の使用頻度が高いため~/PokemonCard内に移動することにしました。

ヘッダーはブログ記事のサムネになる画像、デッキはデッキ紹介でしようするデッキ画像であり、一度使ったらもうほぼ使うことがないため、/PokemonCard/ヘッダー(もしくはデッキ)の下に移動することにしました。

ソースコード

#!/bin/sh

#画像移動
photo_move(){
	#移動する画像を取得
	TAR_PHOTO=$1
	TAR_DIR=$2

	if test $TAR_DIR -eq 0;then

		#画像移動処理を実施
		mv /Users/<ユーザー名>/Downloads/"$TAR_PHOTO"* /Users/<ユーザー名>/Pictures/PokemonCard
	else
		mv /Users/<ユーザー名>/Downloads/"$TAR_PHOTO"* /Users/<ユーザー名>/Pictures/PokemonCard/$TAR_PHOTO
	fi
		
	#処理結果を取得
	TAR_RESULT=$?

	#処理結果を判定
	if test $TAR_RESULT -eq 0;then
		echo "$TAR_PHOTO の移動に成功しました。"
	else
		echo "$TAR_PHOTO の移動に失敗しました。"
	fi
}

#移動するファイルを指定
photo_move "グッズ" 0
photo_move "デッキ" 1
photo_move "ヘッダー" 1
photo_move "ポケモン" 0
photo_move "サポート" 0
photo_move "エネルギー" 0
photo_move "スタジアム" 0
スポンサーリンク

まとめ

上記のスクリプトを組んだことで、「ダウンロードファイルを開く→移動先ファイルを開く→選択してコピペ」とい作業がワンクリックで済むようになりました。

いずれは、スクレイピングで公式ポケモンカード サイトから画像を取得→上記の接頭文字をつけて保存→今回作ったスクリプトで整理、なんてことをしてみたいですね。

以上

Follow me!

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です