大きなフォルダーを圧縮せずに1つのファイルに保存する方法


11

78 GBのフォルダーを1つのファイルに保存し(クラウドサービスにアップロードするため)、アーカイブで圧縮しているかのようにしたいが、圧縮したくない(CPUがそれほど多くない)利用可能な時間)。とにかくこれを達成できることはありますか?おそらく私が知らない端末コマンドですか?


1
tarLinux にはコマンドがあります。tar -cf long.file.tar folder
コスタ2015

5
参考:高速圧縮プログラムがあり、ディスク書き込み速度より高速なものもあれば、ネットワークより高速なものも多数あります。データがまったく圧縮可能な場合、これらのいずれかを使用すると、実際にスピードアップします。たとえば、lzop速度を重視して設計されています。
derobert、2015

回答:


20

使用tartar -cf my_big_folder.tar /my/big/folder

アーカイブを復元する tar -xf my_big_folder.tar -C /

上記で作成されたアーカイブには絶対パスが含まれているため、-Cはルートディレクトリに移動してアーカイブを復元します。

EDIT:原因アーカイブの比較的大きなサイズに、それはSSHまたはクラウドリソース/フォルダのマウントポイントを使用して、その最終的な場所に[直接]それを送ることが最善だろう。たとえば、Cole Johnsonが示唆するように

tar -cf /network/mount/point/my_big_folder.tar /my/big/folder

または

tar -c /my/big/folder | ssh example.com "cat > my_big_folder.tar"

編集ブラックライトシャイニングも示唆しているように、絶対パスを避けたい場合は、大きなフォルダーの親に変更し、tarそこから変更できます:

tar -cf /network/mount/point/my_big_folder.tar \
    -C /my/big/folder/location the_big_folder

または

tar -cC /my/big/folder/location the_big_folder | \
ssh example.com "cat > my_big_folder.tar"

個人的な反射

相対パスと絶対パスのどちらを含めるかは、個人の好みの問題です。

絶対パスが明らかな場合があります。たとえば、災害復旧状況での復元などです。ローカルプロジェクトまたはコレクションの場合、アーカイブが誤って適切な場所に解凍された場合に、現在のディレクトリが乱雑にならないように、目的のフォルダーの親からディレクトリツリーをアーカイブするのが一般的です。big_folder標準の* NIX階層のどこかにある場合、big_folderがそこから逸脱している最初の非標準フォルダとそこからのディレクトリツリーのアーカイブを開始することには意味があるかもしれません。

最後に、ここでは順調に進んでいます- tarアーカイブメンバーは常に相対です。それa) 任意のディレクトリに復元できること、およびb)アーカイブを作成するときにtar先頭を削除/するためです。個人的には、アーカイブの解凍時に常に-Cを使用する傾向があります。


編集内容を明確にするtar -cf /network/mount/point/folder.tar /folderには、ローカルコンピュータにtarしてからアップロードするのではなく、可能な場合はアップロードします
Cole Johnson

正確です。編集を読むほど、混乱しているように見えます。あなたの洞察をありがとう。

1
絶対パスでアーカイブを作成しないようにする方法に注意する価値がありますtar -cf $archive.tar -C $source_dir .。宛先マシンにソースディレクトリと同じパスのディレクトリがない場合は、それを行う必要があります。-Cmkdir $destination_dir && tar -xf $archive.tar -C $destination_dir)を抽出するときは、必ず新しいディレクトリに移動してください。他のアーカイブの内容は、あなたがであることを起こるものは何でもディレクトリにダンプされます。
ブラックライトシャイニング

2

代替:cpio

(cd /my/big/folder && find . -depth -print0 | cpio -0o > myfolder.cpio)

現在のディレクトリに解凍:

cpio -id < myfolder.cpio

警告:

  • find /my/big/folder代わりに使用するとcd、アーカイブには完全なパスが含まれ、抽出はそれらをたどろうとします。
  • 大きなファイル(> 2GB)が問題になる場合があります。

512(デフォルトのブロックサイズを使用した場合cpioは、しかし、タールよりもはるかに遅くなる傾向にあるfixunix.com/sco/89900-cpio-performance-vs-tar-bit-mystery.html
PSkocik
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.