- 締切済み
tarを使用してのファイルコピーについて
以下の2種類のコマンドは同じ事をしているように思うのですが、 tarを使用する利点は何かあるのでしょうか? ディレクトリの場合はtarを使用する利点はあると思うのですが、 ファイルの場合何かあるのかなと思い質問させていただきました。 1, tar cf - foo.backup | (cd /mnt/NAS/backupdir; tar xf -) 2, cp foo.backup /mnt/NAS/backupdir
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- tsuduki123
- ベストアンサー率32% (21/65)
属性も含めてごっそりコピーしたいとき、cp -p を利用するのですが コピーしたいファイルの所有者等が違う場合、話が変わってきます。 cp -p では、所有者も元のままですが tar や pax を利用してコピーした場合 所有者等はすべて実効ユーザーになります。 cp -p してから chown -R してもよいのですがね。 Linuxではそれもままならないので、tarを使用することはよくあります。 というか、cp -p をあまり使わないです。個人的には。。。 # 前述の通り、パーミッションの関係でふべんなんで。
- notnot
- ベストアンサー率47% (4900/10361)
現状では、cp -p と差が無いというのはおっしゃる通りだと思います。 tar の -C オプションを使わずサブシェルで cd している事からしても、No3の方の通り、古くから使っているスクリプト、ないし、古いスクリプトをまねたスクリプトだと思います。
> 普段使用しているファイルコピーのスクリプトで、 そのスクリプトは、歴史が長いのではないでしょうか? だとすれば、移植性を高めるためだと思います。 現在はかなり淘汰されましたが、UnixライクのOSは数多く存在しました。たとえば Minix ver.1.5 の cp コマンドには、何とオプションが1つもありません(それでも tar コマンドは存在します)。このような環境でも使えるよう考慮して作られているのでしょう。
- unacyo
- ベストアンサー率51% (35/68)
tarを使ったのは大分前なので、記憶が定かではないのですが、ANo1さんの言う日付の他にも、ファイル属性とか、ユーザーグループ/idも復元していたと思います。 cp -pが何か判りませんが、これらをコピーするならば、同じに感じますね。
- Tacosan
- ベストアンサー率23% (3656/15482)
日付?
お礼
ご回答ありがとうございます。 ということは、cpにpオプションが付いていた場合、やはり結果としては特に違いはないんでしょうか?
お礼
ご回答ありがとうございます。 pオプションはオーナー、グループ、パーミッション、タイムスタンプを保持したままコピーですね。 私が作成したものではないのですが、普段使用しているファイルコピーのスクリプトで、わざわざtarを使ってシェルを書いていたので気になってしまったんですよね。。