1.02.2標準
config-treeをbackup/config-treeへ再帰的にコピーする。
可能な範囲でモード、時刻、所有関係、シンボリックリンクなども保つ。
GNU cpで目的に最も合うコマンドはどれか。
× 不正解
GNU cpの-aはarchive指定で、再帰コピーと主要属性・リンク構造の保持をまとめて要求する。
詳細解説
誤り
cp config-tree backup/通常はディレクトリを再帰コピーせず、属性保存もまとめて指定しない。
誤り。オプションなしのcpはディレクトリを再帰的にコピーせず、所有関係や時刻の一括保持も要求しない。
誤り
cp -L config-tree backup/シンボリックリンクを参照先へたどる指定で、再帰コピーの指定でもない。
誤り。-Lはシンボリックリンクを参照先へたどるため、リンク自体を保持したい要件と逆になる。
正しい
cp -a config-tree backup/再帰コピーし、リンク構造と主要属性を可能な範囲で保持する。
正しい。-aは再帰処理とpreserve相当の動作をまとめ、ツリーの複製に向く。
誤り
cp -u config-tree backup/更新条件を指定するが、ディレクトリ再帰と属性保持をまとめて満たさない。
誤り。-uは新旧判定の指定であり、再帰処理やリンク・属性の保持をまとめて有効にしない。
実際に確かめる
一時的な検証環境で実行できる例です。
tmp=$(mktemp -d); mkdir "$tmp/src"; printf x >"$tmp/src/file"; ln -s file "$tmp/src/link"; cp -a "$tmp/src" "$tmp/dst"; test -L "$tmp/dst/link" && echo symlink-preserved; rm -rf "$tmp"期待される結果
symlink-preserved理解のポイント
- -aはarchive
- -aは再帰を含む
- シンボリックリンクを保持
確認時の注意
- 確認環境: GNU coreutils 9.x / 一時ディレクトリ
- 検証は自分が所有する一時ツリーだけを複製する。
基礎のおさらい
archive copy
バックアップ用途では内容だけでなく、時刻、モード、リンク構造などの保持も重要になる。
権限による限界
一般利用者は任意の所有者へ変更できないため、-aでも保持できない属性があり得る。
問題IDKL-101-392
確認環境GNU coreutils 9.x / 一時ディレクトリ
最終技術確認2026-08-13
誤り・権利侵害を報告