バックアップで tar czf とか tar xvf とか見るけど、毎回調べてる
cpio と dd も範囲に入ってるらしい
【疑問】tar の cvf と xvf と tvf、どれがどれかわからん。tar・cpio・dd【LPICレベル1】
前提のおさらい。cp -r でディレクトリを中身ごとコピーし、-p や -a で属性を保つ
>>1
tar は複数のファイルを1つのアーカイブにまとめる。最初の文字が操作c 作る(create)x 取り出す(extract)t 中身の一覧
>>3
よく組み合わせるものf アーカイブのファイル名を次に書くv 処理したファイル名を表示z gzip、j bzip2、J xz で圧縮・展開-C ディレクトリ そこで取り出す
>>4
試した順にtar cvf proj.tar proj → proj/ 以下のファイル名が出て proj.tar ができたtar czf proj.tar.gz proj、tar cjf proj.tar.bz2 proj、tar cJf proj.tar.xz projtar xzf proj.tar.gz -C out → out/proj/ に展開
>>5tar tvf proj.tar の出力は ls -l に似た形で、パーミッション・所有者/グループ・サイズ・名前(と日時の列)が出る-rw-r--r-- user/user 6 … proj/src/a.c
>>4
取り出すときも z を付けなあかんの?
>>7
GNU tar は取り出すときは圧縮の種類を自分で判別するから、tar xf proj.tar.xz でも展開できた。作るときは指定が要る
>>5
特定のファイルだけ取り出すなら名前を後ろに書く。tar xf proj.tar proj/README
>>1
cpio は?
>>10
ファイル名の一覧を標準入力から受け取ってまとめる。だから find と組み合わせる
作る:find proj | cpio -o > proj.cpio
取り出す:cpio -id < proj.cpio(-d で必要なディレクトリを作る)
一覧:cpio -t < proj.cpio
>>11
tar は引数でファイルを指定、cpio は標準入力でファイル名を受け取る、が違いやな
>>1
dd は?
>>13
バイト単位でそのまま写す。ファイルシステムを気にしないから、ディスクやパーティションの丸ごとのコピーやイメージ作りに使うif= 入力、of= 出力、bs= 1回に読み書きする大きさ、count= 回数
>>14dd if=/dev/zero of=zero.img bs=1M count=4 → 4+0 records in、4+0 records out と出て、4MiB のファイルができた
>>14of= にディスクを書くと中身は全部上書きされるから、デバイス名を lsblk で確かめてから
>>3
c・x・t と f、圧縮は z・j・J。cpio は find とパイプ、dd は if・of・bs・count。これで整理できた
管理人のひとこと
- tar の操作は
c作成・x取り出し・t一覧。fでアーカイブ名、vで表示、zgzip・jbzip2・Jxz、-Cで取り出す場所。GNU tar は取り出すときは圧縮の種類を判別する。 - cpio はファイル名を標準入力で受け取る。
find … | cpio -o > a.cpioで作り、cpio -id < a.cpioで取り出し、cpio -tで一覧。 - dd はバイト単位でそのまま写す。
if=入力・of=出力・bs=ブロックの大きさ・count=回数。ディスクのイメージ作りなどに使い、of=の書き先を間違えると上書きで消える。