web-dev-qa-db-ja.com

tarコマンドを使用してファイルを圧縮せずにグループ化する方法を教えてください。

私は120,000ファイル以上の非常に大きなフォルダを持っています。そしてそれらを私の同じマシン(同じパーティション)の別の場所に移動する必要があります。

tarコマンドを使用してそれらを1つの単位としてグループ化してから、それらを最後の場所にmvします。

何も圧縮せずにそれらをすべて一緒にtarするために実行する必要があるコマンド(私は最速の結果が必要です)。

52
sergserg

tarはデフォルトでは圧縮しません。圧縮オプションを追加しないでください。

tar cvf myfolder.tar myfolder

有用な情報が追加されているので、私は私の回答に Hennesの コメントを含めています。

TAR(tape archive)はもともとテープ上にアーカイブを作成するために使用されるunixプログラムです。すべてのデバイスはUNIXではファイルとして扱われるため、テープに書き込むのではなくファイルに書き込むのが簡単です。これは通常-fフラグで行われます。コマンドtar cvf myfolder.tar myfolderはtarを意味します。 c会う、 vあいまいな file filename_to_create what_to_tar。これはどこにも圧縮はありません。 tarアーカイブ(ファイルとして)は、圧縮プログラムを使用して圧縮され、拡張子.Zが得られることがよくありました(例:file.tar.Z)。後でこれはzフラグでgtarに含まれるようになりました

78
terdon

@ terdonの答えは正しいです。

しかし、私はtar cvf myfolder.tar.gz myfolderをするのを少し間違えました。圧縮されていなくても、同じパスtar.gz内のファイルの同じ終了名が必要でした。

そのため、tarしようとしているファイル名の最後に.gz, .zのようなものを追加すると、tarアプリは圧縮を使用することを認識し、それに応じて適用されます(gz = gzip)。

そのため、tar.gzのような拡張子を使いたい場合は、必ず--no-auto-compressフラグを使ってください。

--no-auto-compress    do not use archive suffix to determine the compression 
program
2
Ratata Tata