diff

diff はテキストの追加行・削除行を表示します。-q は差異の有無だけを、-c 0 は周辺行なしの差分を示します。-o <patch> で unified patch を保存できます。

開発バージョン 1.1.4安定版エイリアス: patch
lil-terminal

概要

diff とともに patch も導入されます。通常は別の .patched ファイルを作成します。-o <dst> で出力先を指定し、-f でその出力先を上書きできます。元ファイルの置換には -r が必要です。

適用する前に変更内容を確認

patch は書き込む前に周辺行を照合します。別の版向けのパッチは適用されません。テキストファイルは最大 4 MiB、20000 行です。

構文

lil-terminal
diff <old> <new> [options]

リファレンス

diff <old> <new>

3 行のコンテキスト付き unified diff を表示する

diff <old> <new> -c <lines>

コンテキストを 0〜20 行に設定する

diff <old> <new> -q

ファイルが異なるかだけを表示する

diff <old> <new> -o <patch>

diff をパッチファイルとして保存する

patch <file> <patch>

パッチ結果を <file>.patched に書く

patch <file> <patch> -o <dst>

別のファイルへ結果を書く

patch <file> <patch> -r

元ファイルを原子的に置き換える

patch <file> <patch> -f

-r 以外の既存出力を置き換えられるようにする

変更を先に確認

diff はテキストの追加行・削除行を表示します。-q は差異の有無だけを、-c 0 は周辺行なしの差分を示します。-o <patch> で unified patch を保存できます。

一つのモジュールに二つのコマンド

diff とともに patch も導入されます。通常は別の .patched ファイルを作成します。-o <dst> で出力先を指定し、-f でその出力先を上書きできます。元ファイルの置換には -r が必要です。

文脈を検証する理由

patch は書き込む前に周辺行を照合します。別の版向けのパッチは適用されません。テキストファイルは最大 4 MiB、20000 行です。

インタラクティブな sandbox プレビュー

用意された例をページ上でそのまま実行できます。結果は事前に生成されてブラウザに表示され、サーバーではターミナルコマンドを実行しません。

二つの版を比較

インストールと管理

現在の互換バージョンをインストールします。全機能は Base、縮小版は Minimum を選び、すでに導入済みのモジュール更新には upgrade を使います。

Base と Minimum は同じ現在のモジュールリリースの二つのパッケージです。

Base パッケージ

ローカル参照と公開済みの全モードを含む完全パッケージをインストールします。

install diff
Minimum パッケージ

縮小パッケージをインストールします。ローカルリファレンスは含まれず、help <cmd> -i で現在のサーバーリファレンスを開きます。

install diff -m
正確な公開版

この公開済みバージョンを正確に指定してインストールします。

install diff -v 1.1.4
確認または更新

upgrade が互換性を確認し、必要な場合だけブロックを置換します。

upgrade diff
モジュールを削除

コアや他のモジュールに触れず拡張ブロックを削除します。

install diff -u

例

例はコピーできますが、サイトは実行しません。実プロジェクトではパス、権限、破壊的オプションを確認してください。

二つの版を比較
cd \sandbox | diff workspace/original.txt workspace/updated.txt
--- workspace/original.txt
+++ workspace/updated.txt
@@ -1,3 +1,4 @@
 alpha
-beta
+beta updated
 gamma
+delta
文脈なしの差分を表示
diff \sandbox\workspace\original.txt \sandbox\workspace\updated.txt -c 0
--- workspace/original.txt
+++ workspace/updated.txt
@@ -2 +2 @@
-beta
+beta updated
@@ -3,0 +4 @@
+delta
差異の有無だけ確認
diff \sandbox\workspace\original.txt \sandbox\workspace\updated.txt -q
Different
Unified patch を保存
diff \sandbox\workspace\original.txt \sandbox\workspace\updated.txt -o \sandbox\tmp\workspace.patch
Saved  tmp/workspace.patch
Size   110 B
別のファイルに適用
patch \sandbox\workspace\original.txt \sandbox\workspace\change.patch
Source   workspace/original.txt
Patched  workspace/original.txt.patched

patch は diff モジュールが提供し、システムの patch コマンドに依存せず unified diff を制御して適用します。

出力先を指定
patch \sandbox\workspace\original.txt \sandbox\workspace\change.patch -o \sandbox\tmp\patched.txt
Source   workspace/original.txt
Patched  tmp/patched.txt

patch は diff モジュールが提供し、システムの patch コマンドに依存せず unified diff を制御して適用します。

既存の出力先を置換
patch \sandbox\workspace\original.txt \sandbox\workspace\change.patch -o \sandbox\tmp\current.txt -f
Source   workspace/original.txt
Patched  tmp/current.txt

patch は diff モジュールが提供し、システムの patch コマンドに依存せず unified diff を制御して適用します。

元ファイルを明示的に置換
patch \sandbox\workspace\original.txt \sandbox\workspace\change.patch -r
Source   workspace/original.txt
Patched  workspace/original.txt

patch は diff モジュールが提供し、システムの patch コマンドに依存せず unified diff を制御して適用します。

不一致のパッチを拒否
patch \sandbox\workspace\updated.txt \sandbox\workspace\change.patch
Patch deletion mismatch

patch は diff モジュールが提供し、システムの patch コマンドに依存せず unified diff を制御して適用します。

存在しない入力を確認
diff \sandbox\missing.txt \sandbox\workspace\updated.txt
ファイルが見つかりません
競合オプションを拒否
diff \sandbox\workspace\original.txt \sandbox\workspace\updated.txt -q -o \sandbox\tmp\bad.patch
Choose -q or -o

この例で使うファイル: sandbox/workspace/original.txt

例では、保護されたドキュメント用 /sandbox/ ワークスペースのファイルまたはディレクトリを使います。

alpha
beta
gamma

関連ドキュメント

現在の公開版

v1.1.42026-11-01

プロダクション向け調整

diff の現在の安定版。diff はテキストの追加行・削除行を表示します。