-u (更新オプション)スイッチ

書庫内のファイルの更新、及び新しい書庫の作成方法を指定します。

文法

-u[-]<action_set>[!{new_archive_name}]

  <action_set> ::= <state_action>...

    <state_action> ::= <state><action>

      <state> ::= p | q | r | x | y | z | w

      <action> ::= 0 | 1 | 2 | 3

パラメータ

ダッシュ (-)

ベース書庫の更新を禁止します

用語 ベース書庫はコマンドライン中で "base_archive_name" ストリングで割り当てられた書庫のこと。詳細はコマンドラインの文法を参照して下さい。

{new_archive_name}

作成する新しい書庫ファイルのパスを指定します。 このスイッチのオプションは、すべてこの新しい書庫を参照します。

指定されなかった場合はベース書庫のコマンドを参照します。

<state>

処理されたファイルの状態を指定します。

<state> ::= p | q | r | x | y | z | w

個々のファイル名に対して、6つの異なった状態が存在します:

<state> 条件 ディスク上のファイル 書庫内のファイル
p ファイルは書庫内に存在するが、ワイルドカードと一致しない。   存在するが一致しない
q ファイルは書庫内に存在するが、ディスク上には存在しない。 存在しない 存在する
r ファイルは書庫内には存在しないが、ディスク上には存在する。 存在する 存在しない
x 書庫内のファイルはディスク上のより新しい。 古い 新しい
y 書庫内のファイルはディスク上のより古い。 新しい 古い
z 書庫内のファイルとディスク上のファイルは同一である。 同一 同一
w どのファイルが新しいか判別不能である。 (更新時間は同じであるが、サイズが異なる) ? ?
<action>

<state> にあったアクションを選択します。

<action> ::= 0 | 1 | 2 | 3

個々の状態において、三つの異なったアクションから一つ選択することができます:

<action> 説明
0 ファイルを無視します (新しい書庫内に、このファイルのアイテムを作成しません)
1 ファイルをコピーします (古い書庫から新しい書庫へコピーします)
2 圧縮します (ディスクから新しい書庫へファイルを圧縮します)
3 アンチアイテム (解凍中にファイルやフォルダを削除するアイテム) の作成をします。これは 7z 形式のみ使用できます。

注意

すべての更新コマンド (a (追加), d (削除), u (更新)) は、この条件に割り当てることが可能です。

次の表は更新コマンドとアクションの組み合わせです。

コマンド \ <state> p q r x y z w
d (削除) 1 0 0 0 0 0 0
a (追加) 1 1 2 2 2 2 2
u (更新) 1 1 2 1 2 1 2
同期 1 0 2 1 2 1 2

!{new_archive_name} を指定しない場合、 すべてのオプションはメインの書庫(コマンドラインで 7z コマンドの後に割り当てられた書庫)を参照します。
!{new_archive_name} を指定した場合、 新しい書庫が指定された名前で作成され、オプションはすべて新しい書庫を参照します。

更新スイッチの複数指定に対応しています。 7-Zip は一つの命令で、新しい書庫をいくつでも作成することが可能です。

デフォルトでは、個々の新しい書庫のアクション設定は、メインコマンドにより決められます。 コマンドに設定されるアクションは三つ存在します: a (追加)d (削除)u (更新)。 どの複数の <state_action> の組み合わせも可能です。

タイムゾーンについて

タイムゾーンを変更した場合 (コンピュータを他のタイムゾーンへ移動した時や 地域の夜明けにあわせるために時計を変更している場合) 、 ファイルの修正時刻を利用した更新コマンドで問題が発生する可能性があります。 ファイルシステムと書庫形式には 世界協定時 (UTC) のみを使用することを強く推奨します。 その場合は、タイムゾーンの変更による問題は発生しません。 他の場合、例えば、他のタイムゾーンの誰かにファイルを送る場合などもまた、 UTC 形式のみを使用することを推奨します。

ファイルシステムと書庫形式の両方でローカルタイムを使用している、例えば、 FAT ファイルシステムと Zip 形式、の場合などの一部の例でも問題が発生しません。

使用例

7z u c:\1\exist.7z -u- -up0q3x2z0!c:\1\update.7z *

新しい書庫ファイル update.7z を作成し、 カレントディレクトリ中のすべてのファイルの内、 書庫ファイル exist.7z 内のファイルとは異なるものを書き込みます。 書庫ファイル exist.7z は変更されません。

7z u c:\1\exist.7z -up0q3x2z0!c:\1\update.7z * -ms=off

update.7z という新しい書庫を作成し、 exist.7z という書庫内のファイルと現在のディレクトリの 差分ファイルを書き込みます。

注: 現行の 7-Zip では、ソリッド圧縮された書庫の内容を変えることは出来ません。 .7z 書庫を更新するためには書庫をソリッド圧縮しないモード(-ms=off スイッチ)で作成や更新する必要があります。

このスイッチと共に使用することができるコマンド

a (追加), d (削除), u (更新),