ファイルフィルタリング
処理対象ファイルの絞り込み方法
lightfile-shotは、さまざまな条件でファイルをフィルタリングできます。
ファイルサイズで絞り込む
最小ファイルサイズ
# 100KB以上のファイルのみ処理
lightfile-shot /path/to/images --min-size 100kbデフォルト: 5kb
最大ファイルサイズ
# 5MB以下のファイルのみ処理
lightfile-shot /path/to/images --max-size 5mbデフォルト: 10mb
サイズ範囲の指定
# 100KB〜5MBの範囲のファイルのみ処理
lightfile-shot /path/to/images --min-size 100kb --max-size 5mbサイズ単位
b,B: バイトkb,KB,k,K: キロバイト(1024バイト)mb,MB,m,M: メガバイト(1024KB)gb,GB,g,G: ギガバイト(1024MB)
拡張子で絞り込む
JPEGファイルのみ
lightfile-shot /path/to/images --ext .jpg,.jpegPNGファイルのみ
lightfile-shot /path/to/images --ext .png複数の拡張子
lightfile-shot /path/to/images --ext .jpg,.jpeg,.jfif,.png対応拡張子(デフォルト): .jpg, .jpeg, .jfif, .png
注意: GIFやWebPなど他形式の最適化は未対応です。--extで明示的に追加すると処理対象にはなりますが、「unsupported image format」としてエラーになります。
パターンマッチングで絞り込む
対象パターンを指定(include)
特定のパスパターンに合致するファイルのみを処理します。
# uploadsディレクトリ内のJPEGのみ
lightfile-shot /var/www --include "uploads/**/*.jpg"
# 複数パターン
lightfile-shot /var/www \
--include "uploads/**/*.jpg" \
--include "media/**/*.png"除外パターンを指定(exclude)
特定のパスパターンに合致するファイルを除外します。
# tmpディレクトリを除外
lightfile-shot /var/www --exclude "**/tmp/**"
# 複数パターン
lightfile-shot /var/www \
--exclude "**/tmp/**" \
--exclude "**/.git/**" \
--exclude "**/node_modules/**"パターン記法
| パターン | 意味 |
|---|---|
* | 任意の文字列(/を除く) |
** | 任意のディレクトリ階層 |
? | 任意の1文字 |
[abc] | a, b, cのいずれか |
パターン例
| パターン | 合致例 |
|---|---|
*.jpg | カレントディレクトリのJPEG |
**/*.jpg | すべてのサブディレクトリのJPEG |
images/**/* | imagesディレクトリ以下すべて |
2024/**/*.png | 2024ディレクトリ以下のPNG |
よく使う除外パターン
lightfile-shot /var/www \
--exclude "**/tmp/**" \ # 一時ファイルディレクトリ
--exclude "**/.git/**" \ # Gitディレクトリ
--exclude "**/node_modules/**" \ # Node.jsモジュール
--exclude "**/thumbnails/**" \ # サムネイルディレクトリ
--exclude "**/*.bak" # バックアップファイルフィルタの組み合わせ
複数のフィルタ条件を組み合わせて、精密な絞り込みができます。
例1: サイズと拡張子
# 100KB以上のJPEGファイルのみ
lightfile-shot /path/to/images \
--ext .jpg,.jpeg \
--min-size 100kb例2: パターンとサイズ
# uploads内の100KB〜5MBのJPEG、thumbnails除外
lightfile-shot /var/www \
--include "uploads/**/*.jpg" \
--exclude "**/thumbnails/**" \
--min-size 100kb \
--max-size 5mb例3: 複数パターンとサイズ
# uploadsとmedia内の画像のみ、tmpとgitを除外、100KB以上
lightfile-shot /var/www \
--include "uploads/**/*" \
--include "media/**/*" \
--exclude "**/tmp/**" \
--exclude "**/.git/**" \
--min-size 100kbフィルタの動作確認
ドライランモードを使用して、フィルタ条件が正しく動作しているか確認できます。
lightfile-shot /path/to/images \
--include "uploads/**/*.jpg" \
--min-size 100kb \
--dry-run \
--verboseこれにより、実際の処理を行わずに、どのファイルが対象となるかを確認できます。