78 GBのフォルダーを1つのファイルに保存し(クラウドサービスにアップロードするため)、アーカイブで圧縮しているかのようにしたいが、圧縮したくない(CPUがそれほど多くない)利用可能な時間)。とにかくこれを達成できることはありますか?おそらく私が知らない端末コマンドですか?
lzop
速度を重視して設計されています。
78 GBのフォルダーを1つのファイルに保存し(クラウドサービスにアップロードするため)、アーカイブで圧縮しているかのようにしたいが、圧縮したくない(CPUがそれほど多くない)利用可能な時間)。とにかくこれを達成できることはありますか?おそらく私が知らない端末コマンドですか?
lzop
速度を重視して設計されています。
回答:
使用tar
:
tar -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してからアップロードするのではなく、可能な場合はアップロードします
tar -cf $archive.tar -C $source_dir .
。宛先マシンにソースディレクトリと同じパスのディレクトリがない場合は、それを行う必要があります。-C
(mkdir $destination_dir && tar -xf $archive.tar -C $destination_dir
)を抽出するときは、必ず新しいディレクトリに移動してください。他のアーカイブの内容は、あなたがであることを起こるものは何でもディレクトリにダンプされます。
代替:cpio
(cd /my/big/folder && find . -depth -print0 | cpio -0o > myfolder.cpio)
現在のディレクトリに解凍:
cpio -id < myfolder.cpio
警告:
find /my/big/folder
代わりに使用するとcd
、アーカイブには完全なパスが含まれ、抽出はそれらをたどろうとします。
tar
Linux にはコマンドがあります。tar -cf long.file.tar folder