LightFile NextLightFile Next

ファイルフィルタリング

処理対象ファイルの絞り込み方法

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,.jpeg

PNGファイルのみ

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/**/*.png2024ディレクトリ以下の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

これにより、実際の処理を行わずに、どのファイルが対象となるかを確認できます。