
200KBを超えるファイル検出方法
Webサイト制作時にファイルサイズの大きすぎるファイルを読み込んでしまうことがある。
主に圧縮していない画像の場合が多いのだが、画像の場合は大量にある場合は目視で各ファイルサイズを調べることは困難であり時間がかかってしまう。
シェルスクリプトで200KBを超えるファイル検出
下記のようにシェルスクリプトを使えば200KBを超えるファイルを簡単に検出することができる。
#!/bin/bash read -p "ディレクトリを相対パスで入力: " path readonly MAX_BYTE=200 flag=false size=`du -ak ${path}* | cut -f1` file=`du -ak ${path}* | cut -f2` declare -a a_size=() declare -a f_name=() a_size=(${size// / }) f_name=(${file// / }) # ${MAX_BYTE}KB以上のファイルサイズのファイル名を表示 for ((i = 0; i < ${#a_size[@]}; i++)) { if [ ${a_size[i]} -gt ${MAX_BYTE} -a "${f_name[i]%.*}" ]; then echo "${MAX_BYTE}KBを超えるファイルがあります! ${a_size[i]}KB ${f_name[i]}" flag=true fi } if [ ${flag} = false ]; then echo "${MAX_BYTE}KBを超えるファイルはありませんでした。" fi
使い方はまずfile_size_check.shをダウンロードする
file_size_check.sh
実行すると「ディレクトリを相対パスで入力: 」と表示されるのでファイルサイズを調べるディレクトリを相対パスで入力する。
$ ./file_size_check.sh ディレクトリを相対パスで入力: ./img/ 200KBを超えるファイルが含まれています! 508KB ./img/foo.jpg
-bash: ./file_size_check.sh: Permission denied と表示された場合はchmodで実行権限を付与する。
$ chmod 764 file_size_check.sh
Gitを使用しているのであればgit_hooksのpre-commitに含めて、コミット時に自動チェックするようにすればshファイルを手動で実行する手間が省ける。