tar

tar は非圧縮 TAR アーカイブを PHP だけで作成、一覧、テスト、展開し、パストラバーサル、リンク、安全でないエントリを拒否します。

アーカイブバージョン 1.1.5安定版
lil-terminal

概要

圧縮せずにファイルツリーを一つの可搬ファイルへまとめたいときに TAR を使います。デプロイ、バックアップ、受け渡しに向きます。-l で内容を確認し、-t で検証し、既存出力の置換は -f で明示します。

TAR はコンテナであり圧縮ではない

TAR はディレクトリツリーを一つのファイルへ格納しますが、内容そのものは圧縮しません。-d はアーカイブ作成が成功した後だけ元データの削除を del に委ねるため、作成と削除は別の操作のままです。

構文

lil-terminal
tar <src|arc.tar> [dst] [options]

リファレンス

tar <src> [dst]

非圧縮 TAR アーカイブを作成

tar <arc.tar> [dst]

現在のディレクトリまたは <dst> に展開

圧縮せずに一つにまとめる

tar はファイルとフォルダーを圧縮せずに一つの .tar にまとめます。バックアップや移動に便利です。容量を減らすなら zip を使います。

展開前に検査する

-l は内容一覧、-t は書き込みなしでパスとデータを検査します。tar tmp/data.tar tmp/restored で展開先を指定できます。

上書きと元データの削除

-f は明示的な上書き許可です。-d は作成成功後に別モジュール del を呼び出します。

安全上の制約

絶対パス、..、リンクなど危険な項目は拒否します。PHP PharData が必要です。

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

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

非圧縮 TAR アーカイブを作成

インストールと管理

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

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

Base パッケージ

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

install tar
Minimum パッケージ

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

install tar -m
正確な公開版

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

install tar -v 1.1.5
確認または更新

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

upgrade tar
モジュールを削除

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

install tar -u

例

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

非圧縮 TAR アーカイブを作成
cd \sandbox | tar data tmp/data.tar
sandbox

README.txt
current.txt
data.tar
data.zip
draft.txt
new.txt
Tar · list
tar tmp/data.tar -l
D  -      data/
F  59 B   data/sample.csv
F  100 B  data/sample.txt
F  102 B  data/users.json
Tar · test
tar tmp/data.tar -t
Status   Archive OK
Entries  4
Files    3
Size     261 B
現在のディレクトリまたは <dst> に展開
tar tmp/data.tar tmp/restored
restored/
  data/
    sample.csv
    sample.txt
    users.json
非圧縮 TAR アーカイブを作成
tar data tmp/data.tar
Archive already exists
Tar · data
tar data tmp/data.tar -f
README.txt
current.txt
data.tar
data.zip
draft.txt
new.txt
Tar · txt
tar tmp/draft.txt tmp/draft.tar -d
README.txt
current.txt
data.tar
data.zip
draft.tar
new.txt
(source draft.txt removed only after successful creation)
Tar · tar
tar tmp/data.tar -l -t
?
非圧縮 TAR アーカイブを作成
tar missing tmp/missing.tar
Source not found

この例で使うファイル: sandbox/data/sample.txt

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

lil-terminal sandbox text file

This file is safe to read, copy, rename, replace, hash and archive.

関連ドキュメント

現在の公開版

v1.1.52026-10-31

TAR の置換時は新しいファイルの準備が完了するまで旧ファイルを保持します。

TAR の置換時は新しいファイルの準備が完了するまで旧ファイルを保持します。