project/config/app.confをgzip圧縮tarアーカイブbackup.tar.gzへ格納する。
アーカイブ内のパスはproject/config/app.confではなく、config/app.confにする。GNU tarを使用する。
適切なコマンドはどれか。
tarの-Cは、後続のファイル引数を解釈する作業ディレクトリを変更する。project内からconfigを指定すれば、アーカイブにprojectという親名を含めない。
詳細解説
tar -czf backup.tar.gz projectprojectディレクトリ自体を指定するため、メンバー名の先頭にprojectが残る。
誤りです。projectをアーカイブ対象としてそのまま指定します。
相対パスの先頭にprojectが含まれるため、求めるconfig/app.confにはなりません。
tar -czf backup.tar.gz -C project config-Cでprojectへ作業位置を移してからconfigを追加するため、projectという接頭辞が付かない。
正しい選択肢です。-C projectによりtarの後続引数の基準位置がprojectになります。
その位置からconfigを追加するため、メンバー名はconfig/以下になりprojectを含みません。
tar -czf backup.tar.gz project/config/app.conf指定したパスがそのままメンバー名となり、projectという接頭辞が残る。
誤りです。現在位置からproject/config/app.confを直接指定します。
tarはその相対パスをメンバー名に使うため、projectという接頭辞が残ります。
tar -xzf backup.tar.gz -C project config-xはアーカイブの作成ではなく展開を指示する。
誤りです。-xは既存アーカイブからファイルを展開する操作です。
今回は新しいbackup.tar.gzの作成なので-cが必要です。
実際に確かめる
一時的な検証環境で実行できる例です。
mkdir -p project/config
printf 'mode=demo
' > project/config/app.conf
tar -czf backup.tar.gz -C project config
tar -tzf backup.tar.gz期待される結果
config/
config/app.conf理解のポイント
- -cは作成、-xは展開
- -Cは後続引数の基準位置を変える
- アーカイブのメンバー名をtar -tで確認する
確認時の注意
- 確認環境: GNU tar 1.35
- 既存のprojectやbackup.tar.gzと衝突しない検証場所で実行します。
- 作成後はtar -tzfでメンバー名を確認します。
基礎のおさらい
作成と展開
-cはcreate、-xはextractです。主要操作は同時に1つを選びます。
-Cの位置
-Cは位置依存のオプションで、後続のファイル引数へ作用します。複数回使う場合は順序も重要です。
一覧で確認
tar -tは展開せずメンバー名を一覧表示します。意図しない絶対パスや親ディレクトリがないか確認できます。